Django Crispy 表单根据需要设置模型字段
Posted
技术标签:
【中文标题】Django Crispy 表单根据需要设置模型字段【英文标题】:Django Crispy form set model field as required 【发布时间】:2018-04-18 20:27:38 【问题描述】:我有一个模型表单,我想在其中将 required 属性设置为 True 以进行电子邮件验证
字段:-email
class RegisterMyBuisinessForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.form_method = 'post'
self.helper.form_action = '/registermybuisness/'
Field('email', type='email')
self.helper.add_input(Submit('submit', 'Submit',css_class="btn c-theme-btn c-btn-square c-btn-bold c-btn-uppercase"))
super(RegisterMyBuisinessForm, self).__init__(*args, **kwargs)
class Meta:
model = RegistermyBusiness
fields = ['name','email', 'org_name', 'contact','business_description','store_address','message','store_landmark','business_type','city']
我试过了
self.fields['email'].required=True
这导致类 RegisterMyBuisinessForm 没有字段错误
【问题讨论】:
请注意,您在表单类的名称和form_action
中拼错了Business
。
【参考方案1】:
您可以在__init__
方法中更改self.fields['email']
。您需要先致电super()
。
class RegisterMyBuisinessForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
...
super(RegisterMyBuisinessForm, self).__init__(*args, **kwargs)
self.fields['email'].required = True
...
【讨论】:
以上是关于Django Crispy 表单根据需要设置模型字段的主要内容,如果未能解决你的问题,请参考以下文章
使用Django crispy表单,如何缩小TextField的文本框?
Django Crispy Forms 向 ModelFormSet 添加新的空表单
在 python 中通过 django-crispy-forms 渲染表单