相关疑难解决方法(0)

如何使用RadioSelect呈现Django表单而不会默认获得已检查的单选按钮?

在Django 1.2.1上我使用ModelForm并生成一个带有radiobuttons的表单:

class myModelForm(ModelForm):    
    class Meta:
        model = myModel
        widgets = {
            'choose': RadioSelect(),
        } 
Run Code Online (Sandbox Code Playgroud)


这会产生一个带有伪值的额外输入:

<li><input type="radio" id="id_choose_0" value="" name="choose1" /> ---------</li>
<li><input type="radio" id="id_choose_1" value="1" name="choose1" /> First choice</li>
Run Code Online (Sandbox Code Playgroud)


我知道我可以通过设置默认值来摆脱自动生成的空输入字段:

myChoices = (
    ("1", "First choice"),("2", "Second choice"),("3", "Third choice"),
)    

class myModel(models.Model):
    choose = models.CharField(max_length=1, choices=myChoices, default=1...
Run Code Online (Sandbox Code Playgroud)


所以在这种情况下,选择第一个选择:

<li><input checked="checked" type="radio" id="id_choose_1" value="1" name="choose1" /> First choice</li>
<li><input type="radio" id="id_choose_2" value="2" name="choose2" /> Second choice</li>
Run Code Online (Sandbox Code Playgroud)

但是如何在没有选中输入属性的情况下渲染表单?

(没有自动生成的)

django

17
推荐指数
2
解决办法
7845
查看次数

如何在Django ModelForm中删除"None"选项?

例如,我有一个这样的模型:

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 的字段方法.

django django-models django-forms

6
推荐指数
1
解决办法
3998
查看次数

标签 统计

django ×2

django-forms ×1

django-models ×1