首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django admin:如何从父级重定向到子级模型的视图?

在Django admin中,如果想要从父级模型重定向到子级模型的视图,可以通过自定义admin的方法来实现。具体步骤如下:

  1. 首先,在父级模型的admin类中,创建一个自定义的方法,用于重定向到子级模型的视图。例如,我们可以创建一个名为"redirect_to_child"的方法。
代码语言:txt
复制
from django.shortcuts import redirect

class ParentModelAdmin(admin.ModelAdmin):
    def redirect_to_child(self, obj):
        # 获取子级模型的URL
        child_url = obj.childmodel.get_admin_url()
        return redirect(child_url)
    redirect_to_child.short_description = "Redirect to Child Model"
  1. 然后,在父级模型的admin类中,将自定义的方法添加到list_display属性中,以便在admin界面中显示一个链接或按钮,点击后可以执行重定向操作。
代码语言:txt
复制
class ParentModelAdmin(admin.ModelAdmin):
    list_display = ('id', 'redirect_to_child')
  1. 接下来,需要在子级模型的admin类中,定义get_admin_url方法,用于获取子级模型的URL。可以使用reverse函数来生成URL。
代码语言:txt
复制
from django.urls import reverse

class ChildModelAdmin(admin.ModelAdmin):
    def get_admin_url(self):
        return reverse('admin:appname_childmodel_change', args=(self.id,))
  1. 最后,将父级模型和子级模型的admin类注册到admin站点中。
代码语言:txt
复制
admin.site.register(ParentModel, ParentModelAdmin)
admin.site.register(ChildModel, ChildModelAdmin)

这样,在父级模型的admin界面中,会显示一个名为"Redirect to Child Model"的链接或按钮。点击该链接或按钮后,会重定向到子级模型的admin界面。

注意:以上代码中的"appname"需要替换为实际的应用名称,"ParentModel"和"ChildModel"需要替换为实际的模型名称。

推荐的腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)和腾讯云数据库(https://cloud.tencent.com/product/cdb)。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券