我有很多的具有投票功能的機型,所以我創造了這樣的結構:如何避免django「與相關m2m字段衝突」錯誤?
class Voteable(models.Model):
likes_balance = models.IntegerField(default=0, editable=False)
votes = models.ManyToManyField(User, blank=True, editable=False)
likes = models.ManyToManyField(User, blank=True, editable=False)
class Meta:
abstract = True
class Item(Voteable):
title = models.CharField(max_length=20, db_index=True)
description = models.TextField(max_length=1000)
contact_user = models.ForeignKey(User, null=True, blank=True)
class Meta:
abstract = True
class Movie(Item):
cover = models.ImageField(upload_to='images/covers/')
class Car(Item):
seller = models.CharField(max_length=50)
當我嘗試用「蟒蛇manage.py執行syncdb」創建表,收到錯誤消息:
m2m字段「喜歡」的訪問者與相關字段「User.movie_set」發生衝突。爲'likes'的定義添加一個related_name參數。
因爲我在Item類中有更多的字段,所以不想將它們全部複製到所有的子類中,只是像設置錯誤一樣設置related_name。
有什麼建議如何處理它?
這不是真的有用,因爲可投票類不是計劃本身
class Meta: abstract = True
使用。當我將相關名稱添加到它們兩個時,在class Movie
和class Car
中發生相同的錯誤 – luckyjazzbo 2011-04-06 10:35:50