0

related_nameカテゴリとサブカテゴリ構造を作成するためのinmodels.pyの適切な構成に関する提案はありますか?実行中のエラー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'

どんな提案でも大歓迎です。ありがとうございました

4

1 に答える 1

1

カテゴリの再帰的な関係と、サブカテゴリからカテゴリへのFKの両方を「子」と呼ぶことはできません。それらの1つに別の名前を選択してください。

ただし、これはMPTTにはまったく適していないようです。企業はおそらくすべて同じレベルにあるため、ツリーの関係にはなりません。また、ソーダの種類もありません。たとえば、「コーラ」が「スパークリングウォーター」の子になるとはどういう意味ですか。CompanyからSodaTypeへの単純なManyToMany関係が必要なように思えます。これにより、各会社は多くのソーダタイプを持ち、各タイプは複数の会社で作成できます。

于 2012-06-29T21:08:07.377 に答える