【问题标题】:User form has fields with unwanted initial value, Django用户表单的字段具有不需要的初始值,Django
【发布时间】:2016-09-28 23:48:23
【问题描述】:

我正在尝试创建一个视图以允许用户创建另一个用户。问题是生成的表单具有“密码”和“姓氏”字段的初始值,我不知道为什么。我需要删除那些初始值。

我已经用 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

【问题讨论】:

  • 我猜是您的浏览器从密码存储中填写表单。

标签: python django django-forms


【解决方案1】:

这是因为在测试时,您可能使用了保存字段和表单数据的浏览器功能,即自动保存密码。它通常保存密码和表单的前一个字段。请从浏览器设置中清除缓存和表单自动填充数据.让我们知道错误是否仍然存在。 谢谢

【讨论】:

  • 我按照你的建议做了,它奏效了。谢谢你。我想我只是对为什么自动填充出现在“last_name”字段而不是“username”感到困惑。
  • 干杯..!快乐编码:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 2010-10-23
相关资源
最近更新 更多