【问题标题】:django model from as radio select来自广播选择的 django 模型
【发布时间】:2012-11-22 18:58:58
【问题描述】:

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

 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,但没有任何乐趣。

非常感谢任何帮助。

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

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

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

    【讨论】:

    • 啊,完全正确!一个额外的问题 - 如何消除呈现表单时出现的空选项?
    • the docs - 设置empty_label=None
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多