为查询集中的每个对象创建模型表单字段

时间:2011-10-14 21:17:36

标签: django django-queryset modelform

这个问题类似于:field choices() as queryset?

例如,如果我有一个非常简单的模型:

class Order(models.Model):
    quantity = models.FloatField()        
    def __unicode__(self):
        return self.quantity

模型形式如此:

class OrderForm(models.Modelform):
    class Meta:
        model = Order

然后我有一些来自另一个模型的查询集,即。我拉出所有项目的名称:

items = [item.name for item in Inventory.objects.all()]

如何为此列表中的每个项目生成数量字段,并让每个字段的详细名称为每个项目的名称?我需要某种形式吗?

1 个答案:

答案 0 :(得分:0)

class OrderForm(models.Modelform):
    class Meta:
        model = Order

    def __init__(self, *args, **kwargs):
        super(OrderForm, self).__init__(*args, **kwargs)

        self.fields['quantity'].choices = [(i.quantity, i.name) for i in Inventory.objects.all()]