Django 表单。使前端 <select> 需要 ChoiceField
Posted
技术标签:
【中文标题】Django 表单。使前端 <select> 需要 ChoiceField【英文标题】:Django forms. Make ChoiceField required on frontend <select> 【发布时间】:2021-09-18 18:18:19 【问题描述】:我创建了一个使用 ChoiceField 的 Django 表单:
control_model = forms.ChoiceField(choices=(), required=True)
(“选择”为空的原因是因为它们是使用基于我的后端数据库的函数设置的)
以下是整个表格:
class CreateWorkflowForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(CreateWorkflowForm, self).__init__(*args, **kwargs)
self.request = kwargs.pop("request")
self.fields['control_model'].choices = my_function()
control_model = forms.ChoiceField(choices=(), required=True)
class Meta:
model = CreateWorkflowModel
fields = ['control_model']
使用的模型如下所示:
class CreateWorkflowModel(models.Model):
control_model = models.CharField(max_length=100)
我在 Django 模板中使用此表单的方式如下:
<div class="form-content">
form.media
form.as_p
<input type="submit" id="id_submit" value="Submit" />
</div>
但是在我的网页上,与我的 ChoiceField 对应的 <select>
没有“必需”属性:
这意味着如果没有值输入到 ChoiceField 中,我的表单将失败(因为它在表单中是必需的)但是我更希望前端出现一个弹出框,说明“您需要在此字段上输入一个值” .
我知道在 <select>
上设置“必需”值可以做到这一点,但我不知道如何让 django 生成具有此属性的 <select>
。
【问题讨论】:
尝试添加空值的首选 @PavloNaumenko 这行得通。谢谢 【参考方案1】:如果你在你的选择中需要 required 属性,你必须首先选择具有空值的元素,否则它是无效的 html。 见小部件的source code
【讨论】:
以上是关于Django 表单。使前端 <select> 需要 ChoiceField的主要内容,如果未能解决你的问题,请参考以下文章