django - 将字段添加到用户配置文件管理表单
Posted
技术标签:
【中文标题】django - 将字段添加到用户配置文件管理表单【英文标题】:django - add field to user profile admin form 【发布时间】:2012-07-07 19:27:50 【问题描述】:使用给定的屏幕截图,我想从系统上已经存在的另一个模型向用户添加页面添加一个选择下拉列表。我该怎么做?
这是我的帐户/models.py
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from entities.models import Company
from entities.models import Venue
class UserProfile(models.Model):
user = models.OneToOneField(User)
company = models.ForeignKey(Company)
venue = models.ForeignKey(Venue)
def __unicode__(self):
return 'Test'
这是我的帐户/admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from entities.models import Company
from entities.models import Venue
class CompanyInline(admin.StackedInline):
model = Company
class VenueInline(admin.StackedInline):
model = Venue
class MyUserAdmin(UserAdmin):
inlines = [
CompanyInline,
VenueInline,
]
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
现在当我添加上面的代码并返回用户添加页面时,我有这个错误:
Company 和 Venue 模型都填充了数据。
任何帮助将不胜感激。
谢谢, 标记
【问题讨论】:
【参考方案1】:Arg,每次我发布内容时都会发生这种情况。我再看一遍代码,找到问题所在。
无论如何,对于遇到同样问题的其他不幸者,我只是将我的 account/admin.py 更改为以下内容
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from account.models import UserProfile
class UserProfileInline(admin.TabularInline):
model = UserProfile
class MyUserAdmin(UserAdmin):
inlines = [
UserProfileInline,
]
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
【讨论】:
以上是关于django - 将字段添加到用户配置文件管理表单的主要内容,如果未能解决你的问题,请参考以下文章