如何通过 Django admin 向后显示多对多关系的结果?

问题描述 投票:0回答:1

我定义了两个模型,groups 和 group_members,后者定义了与前者的多对多关系:

class Group(models.Model):
    group_name = models.CharField(max_length=100, default="New Group")
    group_created_date = models.DateField(default=date.today) 

class GroupMember(models.Model):
    groups_joined = models.ManyToManyField(Group)
    email = models.EmailField(max_length=100) 
    name = models.CharField(max_length=100)

然后对于我的 admin.py 我只需:

admin.site.register(Group)
admin.site.register(GroupMember)

从一方面来说,这非常有效,当查看 GroupMember 对象时,我可以看到并编辑它们所属的所有组。

但是,当查看组对象时,我看不到该侧的关系 - 我看不到属于该组的任何成员。

我需要在 admin.py 中添加什么才能实现这一点?我一直在寻找如何做到这一点,但答案似乎令人费解和/或过时。

django django-admin django-orm
1个回答
0
投票

你需要像这样定义内联:

class GroupMemberInline(admin.TabularInline):
model = GroupMember
extra = 1   objects

class GroupAdmin(admin.ModelAdmin):
    inlines = [GroupMemberInline]
    # add extra options here

admin.site.register(Group, GroupAdmin)
admin.site.register(GroupMember)
© www.soinside.com 2019 - 2024. All rights reserved.