0

我有一个简单的模型形式:

 class ProductSelectionForm(ModelForm):
     class Meta:
         model = Product

和模型:

class Product(models.Model):
     name = models.CharField(max_length=155)

     def __unicode__(self):
         return self.name

但是,如果我使用 {{ form.as_p }}标签呈现表单,它只会将表单呈现为单个文本输入。如何让表单呈现为单选选项,name作为选项标签和pk作为值?我试过使用widget但没有快乐。

非常感谢任何帮助。

4

1 回答 1

9

你不想要一个模型形式。它们用于创建和编辑模型实例。相反,您似乎想要的是一个选择现有实例的表单:为此,请使用带有 ModelChoiceField 的普通表单:

class ProductSelectionForm(forms.Form):
    choice = forms.ModelChoiceField(queryset=Product.objects.all(), 
                                    widget=forms.RadioSelect)
于 2012-11-22T19:03:44.297 回答