使用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中获得这些新字段吗?我需要帮助!
答案 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)