用户的 Django 管理内联模型
Posted
技术标签:
【中文标题】用户的 Django 管理内联模型【英文标题】:Django admin inline model for User 【发布时间】: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
的错误
如何在我查找用户详细信息时列出由特定用户创建的雇主?
谢谢
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于用户的 Django 管理内联模型的主要内容,如果未能解决你的问题,请参考以下文章