用户的Django管理内联模型 [英] Django admin inline model for User

查看:92
本文介绍了用户的Django管理内联模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有模型作为

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管理面板中的用户细节。

and I would like to list all Employer objects while I was at details of user in Django admin panel.

我写了一些类似于

admin.py

class EmployerInline(admin.TabularInline):
    model = Employer

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

admin.site.register(UserAdmin)

但它给我错误,因为'MediaDefiningClass'对象不可迭代

我如何列出由spesific用户创建的雇主,而我w查看用户的详细信息?

How can I list employers that are created by a spesific user while I was looking for user's details ?

谢谢

推荐答案

你提到的似乎与你的代码中发生了什么有关,所以我并不确定这一点。但是,您在此处还有其他错误,因此潜在地修复这些错误也可以解决该错误。

The particular error you mention doesn't seem to have anything to do with what's going on in your code, so I'm not sure about that particularly. However, you have other errors here, so potentially fixing those will resolve that error as well.

首先,您需要指定 fk_name 您的 EmployerInline 。 Django在大多数情况下自动解析外键,但由于您有两个外键可以使用相同的型号,所以您必须给Django一些帮助。

First, you need to specify fk_name on your EmployerInline. Django resolves the foreign key automatically in most circumstances, but since you have two foreign keys to the same model, you have to give Django some help.

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

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

Second, you may have just omitted it, but you must unregister User before registering it. You also need to specify the model when registering:

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

这篇关于用户的Django管理内联模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆