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 }}