dev*_*eng 6 django django-models django-forms
例如,我有一个这样的模型:
class Item(models.Model):
TYPE_CHOICES = (
(1, _('type 1')),
(2, _('type 2')),
)
type = models.PositiveSmallIntegerField(max_length=1, choices=TYPE_CHOICES)
Run Code Online (Sandbox Code Playgroud)
对于我有的形式:
class ItemModelForm(forms.ModelForm):
class Meta:
model = Item
widget = {
'type': forms.RadioSelect(),
}
Run Code Online (Sandbox Code Playgroud)
我想要的是具有2个选项的无线电选择("类型1"和"类型2").但是,我将有3个选项,"---------","类型1"和"类型2".我认为"---------"代表"无",但模型中需要"类型"字段,为什么"无"选项仍然显示?
但是如果我使用Form代替:
class ItemForm(forms.Form):
type = forms.ChoiceField(widget=forms.RadioSelect(), choices=Item.TYPE_CHOICES)
Run Code Online (Sandbox Code Playgroud)
我将只有2个选项,"类型1"和"类型2",这是正确的.
我想使用ModelForm而不是标准Form,但不知道如何删除"---------".有人能帮助我吗?谢谢.
更新:谢谢大家,刚刚发现它已在这里得到解答.
看起来我将不得不覆盖ModelForm 的字段或方法.
您应该能够设置empty_label到None这一点.
type = forms.ChoiceField(widget=forms.RadioSelect(), choices=Item.TYPE_CHOICES, empty_label=None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3998 次 |
| 最近记录: |