为了账号安全,请及时绑定邮箱和手机立即绑定

Django 表单未显示正确的字段

Django 表单未显示正确的字段

函数式编程 2023-10-17 15:54:52
让用户更改信息字段的 django 表单应该让他们更改用户名、电子邮件、姓名和姓氏,但它会显示他们的国籍、性别、应用得分和生日。views.pydef  profileedit_view(request):    if request.method== 'POST':        form= PerfilEditadoForm(request.POST, instance = request.user)        if form.is_valid():            form.save()            return redirect('login')        else:            form= PerfilEditadoForm(instance=request.user)            args= {'form': form}            return render(request, 'profileedit', args)    form = UsuarioForm(request.POST or None)    if form.is_valid():        form.save()    context = {        'form': form    }    return render(request, "profileedit.html", context)forms.pyclass PerfilEditadoForm(UserChangeForm):    class Meta:        model = User        fields= ('email', 'username', 'first_name', 'last_name')profileedit.py<form method="POST" action="#"> {% csrf_token %}        <p>        {{ form.as_ul }}        <button class="btn btn-primary py-1 px-2" type="submit" > Save </button>        </p>        </form>
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

您的表单正在被覆盖form = UsuarioForm(request.POST or None)。假设您要显示的字段属于 PerfilEditadoForm,您应该将该行更改为form = PerfilEditadoForm(request.POST or None)。


我的建议是将该特定行移到if request.method== 'POST':. 就像是


def  profileedit_view(request):

    form= PerfilEditadoForm(request.POST or None)

    if request.method== 'POST':

        form.instance = request.user

        if form.is_valid():

            form.save()

            return redirect('login')

        else:

            form= PerfilEditadoForm(instance=request.user)

            args= {'form': form}

            return render(request, 'profileedit', args)


    context = {

        'form': form

    }

    return render(request, "profileedit.html", context)


查看完整回答
反对 回复 2023-10-17
?
catspeake

TA贡献1111条经验 获得超0个赞

在 forms.py 中更改括号 - 使用 [] 而不是 ()


class PerfilEditadoForm(UserChangeForm):

    class Meta:

        model = User

        fields= ['email', 'username', 'first_name', 'last_name']


查看完整回答
反对 回复 2023-10-17
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信