我正在尝试使用django-allauth进行用户注册。我有这个表格
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('gender', 'country', 'city', 'birth_date', 'has_accepted_tos')
根据我在settings.py中设置的说明
ACCOUNT_SIGNUP_FORM_CLASS = "userprofile.forms.UserProfileForm"
问题在于,当表单呈现我的自定义表单要求性别时,国家/地区等呈现在顶部,然后是标准用户字段,要求输入用户名,电子邮件和密码。按顺序排列的东西:
密码2
我想按此顺序显示字段
用户名
答案 0 :(得分:6)
您需要提供field_order
属性:
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('gender', 'country', 'city', 'birth_date', 'has_accepted_tos')
field_order = ['username', 'email', 'password1', 'password2', 'gender', 'country']
但是,更好的做法是使用模板文件完全按照您的意愿呈现表单。
引用项目作者:
(...)然后,我不会过分强调allauth的含义 提供开箱即用的显示/设计明智。所有这一切都只是为了 参考,想法是你创造一个合适的设计&表格布局 在你的模板中。
参考文献:
[1] https://github.com/pennersr/django-allauth/blob/master/allauth/account/forms.py