修改字段形成CustomUser模型的顺序

时间:2019-07-06 23:08:15

标签: python django

我创建了一个customUser模型,以便覆盖默认的User

这是我的customUser模型:

from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import CustomUser
from crispy_forms.helper import FormHelper

class CustomUserCreationForm(UserCreationForm):
  helper = FormHelper()
  class Meta(UserCreationForm):
    model = CustomUser
    fields = ('first_name', 'username', 'email', 'last_name', 'organization', 'location', 'postcode', 'phone', 'agree_conditions')

class CustomUserChangeForm(UserChangeForm):
  class Meta(UserChangeForm):
    model = CustomUser
    fields = ('username', 'email', 'first_name', 'last_name','organization', 'location', 'postcode', 'phone', 'agree_conditions')

一切正常,但是我无法更改“用户默认”字段的顺序。

我知道如何重新排列表单字段,我可以简单地在fields = (a, b, c)中更改顺序。例如,如果我希望“ c”出现在表单的“ a”和“ b”之前,则可以执行:fields = (c, a, b)

但是我想上移密码和密码确认

但是我不知道该怎么做,因为我知道他们在用户默认模型中的名字。

理想情况是:

    fields = ('username', 'email', 'PASSWORD_WHICH_I_DONT_KNOW_THE_NAME', 'CONFIRMPASSWORD_WHICH_I_DONT_KNOW_THE_NAME' 'first_name', 'last_name','organization', 'location', 'postcode', 'phone', 'agree_conditions')

1 个答案:

答案 0 :(得分:0)

解决了,这对我来说很愚蠢。

我检查了表单的HTML,发现:

  • “ PASSWORD_WHICH_I_DONT_KNOW_THE_NAME”的默认名称为:password1

  • “ CONFIRMPASSWORD_WHICH_I_DONT_KNOW_THE_NAME”的默认名称为:password2

它将是:

fields = ('username', 'email', 'password1', 'password2' 'first_name', 'last_name','organization', 'location', 'postcode', 'phone', 'agree_conditions')