0

我在通过多对多的两种模型工作,这是相关代码:

class Curso(models.Model):
    horarios = models.ManyToManyField(Horario, related_name = 'cursos')
    ...
    def clean(self):
       ...
       self.horarios.all()
    def save(self,*args,**kwargs):
        self.full_clean()
        ...

Horarios已经定义好了,现在当我尝试在管理界面中创建光标时,我得到一个错误指向self.horarios.all()

'Curso' instance needs to have a primary key value before a many-to-many relationship can be used.

这是有道理的,因为它没有被保存,所以我的问题是,我如何访问正在保存horarios的当前实例中的值?Curso

提前致谢

4

1 回答 1

2

这个错误对我来说似乎很简单——你根本不能ManyToMany在保存对象之前调用 a 。

您可以重现错误:Curso().horarios

显然你不能对不可能存在的关系进行验证,所以只需将你的调用包装在一个if self.pk

if self.pk:
   self.horarios.all()
于 2012-05-17T00:08:10.513 回答