Python Django:form save EXCULD特定字段
我不了解有关的官方文件Python Django:form save EXCULD特定字段,python,django,forms,Python,Django,Forms,我不了解有关的官方文件 我的理解是:django表单保存方法将保存所有表单数据。如果一个集合exclude=(“something”,),“something”字段将不会显示在前端,并且在调用表单保存方法时不会保存。 但是当我按照文档所说的那样做时,'something'字段仍然显示。怎么了? 我还想在表单中添加一些字段以进行验证,这些字段可以在前端显示,而无需保存 **update** 我的代码: class ProfileForm(Html5Mixin, forms.ModelFor
我的理解是:django表单保存方法将保存所有表单数据。如果一个集合exclude=(“something”,),“something”字段将不会显示在前端,并且在调用表单保存方法时不会保存。
但是当我按照文档所说的那样做时,'something'字段仍然显示。怎么了?
我还想在表单中添加一些字段以进行验证,这些字段可以在前端显示,而无需保存
**update**
我的代码:
class ProfileForm(Html5Mixin, forms.ModelForm):
password1 = forms.CharField(label=_("Password"),
widget=forms.PasswordInput(render_value=False))
password2 = forms.CharField(label=_("Password (again)"),
widget=forms.PasswordInput(render_value=False))
captcha_text = forms.CharField(label=_("captcha"),
widget=forms.TextInput())
captcha_detext = forms.CharField(
widget=forms.HiddenInput())
class Meta:
model = User
fields = ("email", "username")
exclude = ['captcha_text']
def __init__(self, *args, **kwargs):
super(ProfileForm, self).__init__(*args, **kwargs)
..........
def clean_username(self):
.....
def clean_password2(self):
....
def save(self, *args, **kwargs):
"""
Create the new user. If no username is supplied (may be hidden
via ``ACCOUNTS_PROFILE_FORM_EXCLUDE_FIELDS`` or
``ACCOUNTS_NO_USERNAME``), we generate a unique username, so
that if profile pages are enabled, we still have something to
use as the profile's slug.
"""
..............
def get_profile_fields_form(self):
return ProfileFieldsForm
如果exclude仅影响在Meta类下定义的模型,那么
exclude=['captcha\u text']
将不起作用?exclude=['title']
将从表单中排除字段,而不是从模型中排除字段。
form.save()
将尝试使用可用的for字段保存模型实例,但模型可能会抛出与缺少的字段相关的任何错误
要在模型表单中添加额外字段,请执行以下操作:
class PartialAuthorForm (ModelForm):
extra_field = forms.IntegerField()
class Meta:
model = Author
def save(self, *args, **kwargs):
# do something with self.cleaned_data['extra_field']
super(PartialAuthorForm, self).save(*args, **kwargs)
但是请确保模型作者中没有名为“PartialAuthorForm”的字段。首先,标题字段仍然显示的原因必须在视图中的某个位置。请确保按如下方式创建(未绑定)表单实例:
form = PartialAuthorForm()
然后在模板中尝试这种简单的渲染方法
{{ form.as_p }}
其次,在模型表单中添加额外字段应该没有问题,例如,请参见post。因此,保存方法仅用于保存在Meta类下定义的
模型
,并且不会保存额外字段?由于额外字段不在模型中,您希望将额外字段保存到哪里?谢谢!我现在明白了。对一个大型django项目进行一些修改真的很难……如果我想在保存时提供title
,该怎么办。我是否应该将数据放入cleaned_data['title']='something'
{{ form.as_p }}