Django UserProfile扩展

时间:2012-02-20 21:36:58

标签: django django-admin

我在模型中使用UserProfile方法来扩展用户。

如果我想让用户获得一个标题,即'Mr'和一个中间的首字母'A',那么标准的实践是什么?

目前,在其原始格式中,我输入名字和姓氏,然后向下滚动以选择标题并输入任何首字母。

是否可以组合用户和用户配置文件?

TIA

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容创建自定义ModelForm:

class ProfileForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ProfileForm, self).__init__(*args, **kwargs)
        self.fields.keyOrder = ['title', 'first_name', 'middle_name', 'all other fields']

如果你不想列出所有字段,你可以摆弄那个keyOrder,它只是一个列表:

correct_order = ['title', 'first_name', 'middle_name']
other_fields = filter(lambda f: f not in correct_order, self.fields.keyOrder)
self.fields.keyOrder = correct_order + other_fields

您也可以在管理员中使用此表单。