Django管理用户的内联模型

brs*_*gic 8 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')
Run Code Online (Sandbox Code Playgroud)

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

我写过类似的东西

admin.py

class EmployerInline(admin.TabularInline):
    model = Employer

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

admin.site.register(UserAdmin)
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

Chr*_*att 11

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

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

class EmployerInline(admin.TabularInline):
    model = Employer
    fk_name = 'create_user'
Run Code Online (Sandbox Code Playgroud)

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

admin.site.unregister(User)
admin.site.register(User, UserAdmin)
Run Code Online (Sandbox Code Playgroud)