【问题标题】:django - add field to user profile admin formdjango - 将字段添加到用户配置文件管理表单
【发布时间】: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 模型都填充了数据。

任何帮助将不胜感激。

谢谢, 标记

【问题讨论】:

    标签: python django admin models


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2014-08-05
      • 2018-01-14
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 2019-06-17
      • 1970-01-01
      • 2020-01-21
      相关资源
      最近更新 更多