0

使用 Django“创建用户配置文件的方法”页面上的示例为用户创建一些额外的字段,效果令人满意,但我遇到的问题是当你想将这些新数据插入用户时,因为我从管理员和其他人那里看到我找到的解决方案不是来自表单,但我实际上更喜欢它来自 Django admin 的想法,以保持管理状态。

因此,它向用户模型插入了额外的字段:

## 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))

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

个人信息

名:

姓:

电子邮件地址:

尼特:

公司:

地址:

城市:

电话:

移动的:

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

4

1 回答 1

0

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

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)
于 2012-05-02T23:42:55.993 回答