我创建了一个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')
答案 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')