2011-01-03 13 views
1

は、まだ私のカテゴリは、このように多くの属性に多くある私は、このような試すたら私は"'Foo' instance needs to have a primary key value before a many-to-many relationship can be used."を得る:Djangoのモデル清潔で多対多の問題

class Category(models.Model): 
    name = models.CharField(max_length=120) 

class Movie (models.Model): 
    poster = models.ImageField(blank=True) 
    categories = models.ManyToManyField(Category) 

    def clean(self): 
      try: 
       self.categories.all().get(db_name="special") 
       self.poster.url = u'/media/special_img.png' 
      except Category.DoesNotExist: 
       pass 
+0

このエラーが発生しているコマンドを追加してください。 –

+0

@Tom - 私は 'self.categories.all()'から賭けても構わないと思います。 –

+0

@Dominic:私はあなたがこの賭けに勝つと確信しています –

答えて

2

することができます」あなたがそれを保存するまで、Fooがまだカテゴリに属していないかどうかを確認します。しかし、それはとにかく保存されていないので、それはまだカテゴリに属していないことを確認することができます。

すでに保存されているかどうかを確認する方法の1つは、if foo.pkです。 pkがプライマリキーで、まだ保存されていない場合はNoneになります。

関連する問題