我有一个样式表来确定每个产品类型型号:你怎么解决的MySQL和Django管理外键约束
class Style(models.Model):
style = models.AutoField(primary_key=True)
name = models.CharField('Title', max_length=150)
etc..
我需要标识的所有变型产品产品表上述型号:
class Product(models.Model):
product = models.AutoField(primary_key=True)
style = models.ForeignKey(Style, db_column='style')
color = models.CharField(max_length=250, blank=True)
price = models.IntegerField(max_length=10, blank=True)
etc..
然而,客户希望能够推荐其他符合上述风格的产品。所以我想添加一些“相关产品”列作为外键。但是MySQL和Django都不允许我添加它们。
所以现在我只是做了他们整场。我在样式模型中添加了以下几行:
related_1 = models.IntegerField('Related Product1',blank=True,max_length=10, default=0)
related_2 etc..
例如,polo衫的styleId = 1。
它有4种不同的颜色和3种面料。
共有7款产品适用于1款式。
该产品表将有七行所有与styleid = 1。
卖方将手动选择都涉及到风格的产品,其中进入related_1,related_2等
我明白Django和MySQL的意见一些潜在的循环逻辑那里,因为每个产品都有一个FK到styleId 。所以如果styleId有一个外键返回到同一产品,就可能发生冲突。
但事实上,你显然不希望让相关产品参考产品瓦特/同样的styleId ...这可以很容易地通过应用程序而不是数据库来处理。
我的解决方法允许用户手动输入相关产品到形式,但它是真的很酷,如果我能得到的Django拉一个选择下拉与有效的产品ID的列表。如果可能的话。
是吗?
P.S.我确实阅读了related_field上的django文档,但无法真正跟踪他们所得到的结果。我尝试了一些东西,但他们没有提供太多的示例代码。
2nd P.S.我根据请求编辑它,并提供更详细的模型信息。我希望这是更清楚现在...
谢谢。我是Django新手只使用管理,所以我不太熟悉这种语法。让我拿出我得到的并编辑原始帖子。 – joedevon 2009-08-15 23:49:38