python 删除django模型表单中的空级别

5kgi1eie  于 2022-12-28  发布在  Python
关注(0)|答案(3)|浏览(106)

django版本:1.3.7 Python版本:2.6
model.py

CHOICES = (('Hospital','Hospital'),("Doctor's office", "Doctor's office"))



place_of_first = models.CharField(max_length=100, default=None, choices=CHOICES,
                                               blank=True, null=True, verbose_name="")

form.py

class Form(ModelForm):
    def __init__(self, *args, **kwargs):
       super(Form, self).__init__(*args, **kwargs)
       self.fields['creation_date'].widget.attrs['readonly'] = True


    required_css_class = 'required'

    class Meta:
        model = MODELFORM
        widgets = {
           'place_of_first' : RadioSelect()
}

它给空的水平与单选按钮一样[单选按钮“----------------”]我想删除这个水平与单选按钮。它的非必填字段。

zsbz8rwp

zsbz8rwp1#

我确实遇到了同样的问题。更新您的forms.py文件。

if self.fields['place_of_first'].widget.choces[0][0] == "" :
    del self.fields['place_of_first'].widget.choices[0]

希望对你有用!

ffdz8vbo

ffdz8vbo2#

你得到破折号是因为你在你的模型中设置了blank=True。试着把它切换到blank=False
以下是来自Django site的一些信息:
除非在字段上设置了blank=False以及默认值,否则将使用选择框呈现包含“---------”的标签。若要重写此行为,请向包含None的选项添加元组;例如,(None,'Your String For Display')。或者,您可以在有意义的情况下使用空字符串代替None-例如在字符域上。

kq0g1dla

kq0g1dla3#

删除--------从选择中删除

def __init__(self, *args, **kwargs):
    super(RelatedAddForm, self).__init__(*args, **kwargs)
    status_excluded = ['','-']
    self.fields['name'].choices = [(k, v) for k, v in self.fields['name'].choices if k not in status_excluded]

相关问题