Django显示ForeingKey关系的列表

时间:2019-04-09 14:42:37

标签: django django-admin

我正在使用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.

1 个答案:

答案 0 :(得分:1)

您可以向UserAdmin添加一个方法,该方法以逗号分隔的列表形式返回所有应用程序。我将假设在StoreApplication模型上有一个CharField用来命名对象(名称)

+2

然后只需将get_applications添加到字段和readonly_fields