繁体   English   中英

模型中的Django related_name

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM