Django Admin:如何为用户显示其他字段?

时间:2012-05-02 21:35:03

标签: django user-interface django-admin django-templates

使用Django“创建用户配置文件的方法”中的示例为用户创建一些其他字段,这些字段工作得非常满意,但我遇到的问题是当您要将这些新数据插入用户时,因为我从管理员处看到我找到的另一个解决方案不是来自一个表单,但我实际上更喜欢Django管理员的想法,以维持管理状态。

因此,它是向用户模型插入其他字段:

## User Additional Fields
User.add_to_class ('nit' models.IntegerField (max_length = 20, null = True))
User.add_to_class ('company', models.CharField (max_length = 30, null = True))
User.add_to_class ('address', models.CharField (max_length = 30, null = True))
User.add_to_class ('city', models.CharField (max_length = 10, null = True))
User.add_to_class ('phone', models.CharField (max_length = 10, null = True))
User.add_to_class ('Mobile', models.CharField (max_length = 10, null = True))

另一方面,像我这样的同一用户中的“权限”功能将其删除,因为平台不需要此信息,并且其他字段保留在“个人信息”中,所有这些都是管理员: / p>

个人信息

名字:

姓氏:

电子邮件地址:

尼特:

公司:

地址:

城市:

电话:

移动:

你能帮我看看如何在管理员Django1.4中获得这些新字段吗?我需要帮助!

1 个答案:

答案 0 :(得分:0)

我认为您要做的是在管理员中与用户一起编辑您的UserProfile?如果是这样,请尝试将以下内容放在admin.py文件中,无论您定义了UserProfile的任何应用程序:

from django.forms.models import inlineformset_factory
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin

from myapp.models import UserProfile


class UserProfileFormSet(inlineformset_factory(User, UserProfile)):
    def __init__(self, *args, **kwargs):
        super(UserProfileFormSet, self).__init__(*args, **kwargs)
        self.can_delete = False

class UserProfileInline(admin.StackedInline):
    model = UserProfile
    fk_name = 'user'
    formset = UserProfileFormSet

class MyUserAdmin(UserAdmin):
    inlines = [UserProfileInline]


# Re-register altered UserAdmin
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)