在这方面有一些亲密的人,但我能找到的只是我正在做的事情,但它不起作用。
这是一个示例:您的产品可以有多个选项。每个选项可以有多个选择。
class Option_Choices(models.Model):
"""
choices for each option
"""
name = models.CharField(max_length=30)
def __unicode__(self):
return self.name
class Product_Options(models.Model):
"""
products can have many options
"""
name = models.CharField(max_length=30)
option_type = models.IntegerField(choices=OPTION_TYPE)
choices = models.ManyToManyField(Option_Choices, related_name='product_options_choices')
def __unicode__(self):
return self.name
class Product(models.Model):
"""
there are options for products - different sizes / colors
"""
name = models.CharField(max_length=30)
options = models.ManyToManyField(Product_Options, related_name='product_options')
def __unicode__(self):
return self.name
看起来很简单,我得到这个错误
'options' 是通过模型 Product_Options 手动定义的 m2m 关系,它没有 Product_Options 和 Product 的外键
我尝试了很多不同的东西,包括使用“通过”无法弄清楚为什么这不起作用。这是每个人都说要做的。有任何想法吗?