我有一个简单的模型形式:
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
但没有欢乐。
任何帮助都非常感激。
答案 0 :(得分:8)
你不想要一个模型形式。他们用于创建和编辑模型实例。相反,您似乎想要的是一个选择现有实例的表单:为此,使用带有ModelChoiceField的普通表单:
class ProductSelectionForm(forms.Form):
choice = forms.ModelChoiceField(queryset=Product.objects.all(),
widget=forms.RadioSelect)