2012-04-29 41 views
0

我不喜欢将用户名强制转换为单独的first_name和last_name字段,因此我用profile.fullname替换了user.first_name和user.last_name。在Django的管理员中隐藏first_name和last_name

它没有意义,显示在管理员的所有三个名字,所以我想这:

admin.site.unregister(User) 

class ProfileInline(admin.StackedInline): 
    model = Profile 

class ProfileAdmin(UserAdmin): 
    inlines = [ProfileInline] 
    exclude = ('first_name', 'last_name') 

admin.site.register(User, ProfileAdmin) 

这并不工作,我不知道为什么:

陷入KeyError异常而渲染:“关键‘FIRST_NAME’不应在形式上找到”

+1

Django的UserAdmin类使用2种不同的形式,一种用于'添加'视图,另一种用于'更改'视图。它们中的每一个都定义了不同的字段。这个错误发生在哪里? – rantanplan

+0

@rantanplan有一个好处,当django使用仅包含“用户名”和“密码”的表单时,这可能出现在“添加”页面上。我不记得这个ModelAdmin如何动态地切换表单,但这是我的第一个猜测。我会去查找UserAdmin找到合适的方法来覆盖两种形式之一。 –

回答

2

参考文献the code,在'last_name''first_name'已经ð在fieldsets ec ec。然后发生错误,因为布局声明表示有last_namefirst_name,它们不能再在表单字段中找到。覆盖fieldsets将做的伎俩。

相关问题