【问题标题】:Django admin inline model for User用户的 Django 管理内联模型
【发布时间】:2011-11-27 18:01:20
【问题描述】:

我有模型

class Employer(models.Model):
    create_user = models.ForeignKey(User,unique=False,null=True, related_name='%(class)s_user_create')
    update_user = models.ForeignKey(User,unique=False,null=True, related_name='%(class)s_user_update')

当我在 Django 管理面板中查看用户详细信息时,我想列出所有 Employer 对象。

我写过类似的东西

admin.py

class EmployerInline(admin.TabularInline):
    model = Employer

class UserAdmin(admin.ModelAdmin):
    inlines = [
               EmployerInline
    ]

admin.site.register(UserAdmin)

但它给了我'MediaDefiningClass' object is not iterable的错误

如何在我查找用户详细信息时列出由特定用户创建的雇主?

谢谢

【问题讨论】:

    标签: django django-admin django-admin-filters


    【解决方案1】:

    您提到的特定错误似乎与您的代码中发生的事情没有任何关系,所以我不确定这一点。但是,这里还有其他错误,因此修复这些错误也可以解决该错误。

    首先,您需要在您的EmployerInline 上指定fk_name。在大多数情况下,Django 会自动解析外键,但由于同一模型有两个外键,因此您必须给 Django 一些帮助。

    class EmployerInline(admin.TabularInline):
        model = Employer
        fk_name = 'create_user'
    

    其次,您可能只是省略了它,但您必须在注册之前取消注册User。注册时还需要指定型号:

    admin.site.unregister(User)
    admin.site.register(User, UserAdmin)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 2015-06-10
      • 2016-02-18
      • 2015-11-15
      • 2013-08-20
      • 2010-12-27
      相关资源
      最近更新 更多