我正在使用django 2和python 3。
在我的模型中,我有可以拥有“应用程序”列表的“用户”。应用程序只能有一个所有者。 我像这样使用了ForeingKey:
class User(AbstractUser):
# nothing interresting for this question here
pass
class StoreApplication(models.Model):
owner = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name="applications"
)
现在,我想在用户的管理页面中列出用户的应用程序,例如应用程序名称列表,只是只读内容。不在列表视图中,在编辑视图中。
我知道InlineModelAdmin,它似乎无法解决我的问题,因为它包括每个用户应用程序的整个应用程序表单。
如果我尝试在用户admin中将该字段引用为“应用程序”:
class UserAdmin(admin.ModelAdmin):
list_display = ("username", )
fieldsets = (
("Général", {
"fields": ("username", "applications", )
}),
)
发生错误:
Unknown field(s) (applications) specified for User. Check fields/fieldsets/exclude attributes of class UserAdmin.
答案 0 :(得分:1)
您可以向UserAdmin添加一个方法,该方法以逗号分隔的列表形式返回所有应用程序。我将假设在StoreApplication模型上有一个CharField用来命名对象(名称)
+2
然后只需将get_applications添加到字段和readonly_fields