用户表单包含具有不需要的初始值的字段Django

时间:2016-09-28 23:48:24

标签: python django django-forms

我尝试创建一个允许用户创建另一个用户的视图。问题是生成的表单具有密码'的初始值。和' last_name'田野,我不知道为什么。我需要删除这些初始值。

我已经使用ModelForm创建了一个UserForm。

class UserForm(forms.ModelForm):
    # I've tried this, but it doesn't change anything
    #def __init__(self, *args, **kwargs):
        #super(UserForm, self).__init__(*args, **kwargs)
        #self.fields['password'].value = ''
        #self.fields['last_name'].value = ''

    password = forms.CharField(widget=forms.PasswordInput(render_value=True))

    class Meta:
        model = User
        fields = [
            'username', 'email', 'first_name', 'last_name'
        ]

然后我有了观点。我已按照相同的模式对视图进行编码,以便为其他对象创建视图。遇到这个问题之后,我把视图写到了这个:

def create_user(request):
    user_form = UserForm()

    context = {
        "user_form": user_form,
    }
    return render(request, "remote/user/user_create_form.html", context)

我希望如果我只是尝试显示表单,而不是处理表单数据,则不会出现此问题,但确实如此。

我的模板有这个(我使用脆纸):

<form action="" method="POST">{% csrf_token %}
    {{ user_form|crispy }}
    <input type="submit" class="btn btn-primary" value="Registar" />
</form>

以下是表单最初的样子: password and last_name fields have initial values

1 个答案:

答案 0 :(得分:0)

这是因为在测试时,您可能已经使用了保存字段和表单数据的浏览器功能,即自动保存密码。它通常会保存密码和表单的前一个字段。请清除缓存并从浏览器设置中填写自动填充数据。如果错误仍然存​​在,请告诉我们。 感谢