django模型来自无线电选择

时间:2012-11-22 18:58:58

标签: django django-forms

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

 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但没有欢乐。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:8)

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

class ProductSelectionForm(forms.Form):
    choice = forms.ModelChoiceField(queryset=Product.objects.all(), 
                                    widget=forms.RadioSelect)