首页
学习
活动
专区
工具
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)。

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

相关·内容

  • 二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

    Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛手Django Reinhardt来命名的。Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性 [2] 。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。

    02
    领券