0

多対多を介して関連付けられた2つのモデルで作業しています。関連するコードは次のとおりです。

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。オブジェクトが保存される前にを呼び出すことはできません。

エラーを再現できます。Curso().horarios

明らかに、存在する可能性のない関係の検証を行うことはできないため、呼び出しをif self.pk

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