2014-02-12 33 views
1

我有以下代码:Django的一个一对多的,加个领域动态地管理

class Item(models.Model): 
    name = models.CharField(max_length=100) 
    keywords = models.CharField(max_length=255) 
    type = models.ForeignKey(Type) 

    class Meta: 
     abstract = True 

class Variant(models.Model): 
    test_field = models.CharField(max_length=255) 

class Product(Item): 
    price = models.DecimalField(decimal_places=2, max_digits=8,null=True, blank=True) 
    brand = models.ForeignKey(Brand) 
    variant = models.ForeignKey(Variant) 

    def get_fields(self): 
     return [(field.name, field.value_to_string(self)) for field in Product._meta.fields] 

    def __unicode__(self): 
     return self.name 

进出口使用格拉佩利。 我希望我的产品具有多个变体。我应该使用一个多人球场吗?

我希望能够直接在管理员中将变体添加到我的产品。现在我得到一个没有变体的空下降(因为它们不存在)。

我以为Django在你指定一个外键时会自动执行此操作吗?

如何在编辑时直接在我的产品页面上显示变体字段? 我读过一些关于管理内嵌字段的内容?

回答

2

嗯,这是周围的其他方法:)

1 /位的外键字段在变,而不是在你的产品(你的描述实际上是一个一对多的关系)。

2将变量与admin.py中的相应ProductAdmin中的产品链接为内联(即VariantInline)。

请参阅该文档为进一步的信息:https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#inlinemodeladmin-objects

希望这有助于!

Regards,

+0

工作就像一个魅力!谢谢!是否可以嵌套inlinemodels?如果我想添加另一个类到Variantmodel,可能吗?我试图做同样的事情,但我没有得到它的工作... – JOSEFtw

相关问题