[英]Django related_name in Models
關於在models.py中正確配置related_name
任何建議,以創建類別和子類別結構? 運行syncdb
時出錯:
myapp.category: Accessor for field 'parent' clashes with related field 'Category.children'. Add a related_name argument to the definition for 'parent'. myapp.category: Reverse query name for field 'parent' clashes with related field 'Category.children'. Add a related_name argument to the definition for 'parent'. myapp.subcategory: Accessor for field 'parent' clashes with related field 'Category.children'. Add a related_name argument to the definition for 'parent'. myapp.subcategory: Reverse query name for field 'parent' clashes with related field 'Category.children'. Add a related_name argument to the definition for 'parent'.
我正在嘗試建立類別/子類別結構。 例如,父類別是蘇打水公司(可樂,百事可樂等),子類別是蘇打水的類型(可樂,蘇打水等)。子類別可以與不同的父類別相關,反之亦然。
這是我遇到問題的模型(使用django-mptt ):
class Category(MPTTModel):
site = models.ForeignKey(Site)
template_prefix = models.CharField(max_length=200, blank=True)
name = models.CharField(max_length=200)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
def __unicode__(self):
return self.name + u' Category'
class SubCategory(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey('Category', null=True, blank=True, related_name='children')
def __unicode__(self):
return self.name + u' SubCategory'
任何建議,不勝感激。 謝謝
您不能同時將Category和FK上的遞歸關系從SubCategory稱為Category“ children”。 為其中一個選擇其他名稱。
不過,我必須說,這似乎根本不適合MPTT。 公司不會陷入樹上的關系,因為它們大概處於同一水平,蘇打水類型也不會。例如,“可樂”變成“蘇打水”的孩子意味着什么? 聽起來您想要一個從Company到SodaType的簡單的ManyToMany關系,以便每個公司可以有多種蘇打類型,每種類型可以由多個公司制造。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.