Django Admin 反向关系

gue*_*tli 5 django django-admin

如果您位于模型组的 django 管理页面上。你不知道与用户存在反向关系。

有些人(不是我)对此有困难。

有没有办法显示所有反向关系,以便您可以跳转到匹配的管理页面?

例子:

在组的管理页面上,我想要一个指向用户的链接(以及引用它的所有其他模型)。

这应该通过代码来完成,而不是通过模板手动完成。

git*_*rik 2

此方法不会自动添加指向组的所有相关模型的链接,但会为与组相关的所有用户添加链接(因此一次添加一个相关模型)。这样,您将在您的组中获得包含相关用户的内联视图。

您或许可以扩展此技术,使其自动适用于所有相关领域。

class UserInline(admin.StackedInline):

    model = User
    extra = 0
    readonly_fields = ('change',)

    def change(self, instance):

        if instance.id:

            # Django's admin URLs are automatically constructed
            # based on your Django app and model's name.
            change_url = urlresolvers.reverse(
                'admin:djangoapp_usermodel_change', args=(instance.id,)
            )

            return '<a class="changelink" href="{}">Change</a>'.format(change_url)

        else:
            return 'Save the group first before editing the user.'

    change.allow_tags = True


class GroupAdmin(admin.ModelAdmin):
    list_display = ('name',)
    inlines = (UserInline,)
Run Code Online (Sandbox Code Playgroud)