Django管理用户的内联模型

时间:2011-09-29 14:04:39

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

我的模特为

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

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

由于

1 个答案:

答案 0 :(得分:11)

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

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

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

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

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