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

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

相关·内容

Django框架学习(一)

Model模型、View视图、Template模板) Model模型:操作数据库 View视图:接收请求,进行业务处理、返回响应 Template模板:封装构造要返回的html,展示页面内容 3、MVT...) 需要注意的小点: 1、默认的端口是8000,默认的ip是127.0.0.1 2、一个项目分为很多功能模块,Flask里面的功能模块是蓝图,Django里面的功能模块是子应用 3、Django自带admin.../'去掉再匹配,匹配成功之后,去掉匹配成功的内容;将匹配剩下的内容到包含的子应用urls里面进行同样匹配,然后匹配成功,找到对应的视图函数,就会进行调用,然后给里面传一个request,最后就返回一个响应...在子应用中进行url地址的配置时,建议严格匹配开头和结尾(防止访问时,视图混乱的情况,框架程序找错对应的视图函数) 4.3url地址反向解析 作用:根据视图函数动态获取对应的url,一般配合重定向时使用...,将来视图函数的地址改变的时候,我们重定向是不需要更改的。

2.2K20

django 1.8 官方文档翻译:7-2 管理操作

例如,下面是 django.contrib.auth app 在Django’s创建的用户模型: 警告 “删除所选对象”的操作由于性能因素使用了QuerySet.delete(),这里有个附加说明:它不会调用你模型的...继续阅读,来弄清楚如何向列表添加你自己的操作。 编写操作 通过示例来解释操作最为简单,让我们开始吧。 操作的一个最为普遍的用例是模型的整体更新。...这真是极好的,但是以视图的代码设计角度来看,它并不完美:由于操作与Article紧密耦合,不如将操作直接绑定到ArticleAdmin对象上更有意义。...大多数情况下,最佳实践是返回 HttpResponseRedirect,并且使用户重定向到你编写的视图中,向GET查询字符串传递选中对象的列表。这需要你在中间界面上提供复杂的交互逻辑。...最佳方式是编写一个小型的操作,简单重定向到你的自定义导出视图中: from django.contrib import admin from django.contrib.contenttypes.models

72820
  • Django开发快速入门

    单击“保存”按钮后,我们将重定向到列出所有当前条目的“书籍”页面。 ? image-20200916021124065 我们传统的Django项目现在有数据,但是我们需要一种将其公开为网页的方法。...这意味着创建视图,URL和模板文件。 现在开始吧。 Views views.py文件控制如何显示数据库模型内容。 由于我们要列出所有书籍,因此可以使用内置的通用类ListView。...如果用户转到/ admin /,他们将被重定向到admin应用。 我们在图书应用路由中使用空字符串'',这意味着首页上的用户将直接重定向到图书应用。...Django的工作方式,现在,当用户转到我们网站的主页时,他们将首先点击library_project / urls.py文件,然后将其重定向到使用BookListView指定的books / urls.py...在此视图文件中,Book模型与ListView一起使用以列出所有书籍。 最后一步是创建我们的模板文件,以控制实际网页上的布局。 我们已经在视图中将其名称指定为book_list.html。

    2.3K41

    2018年9月26日Django的安装以及创建第一个Django项目和子模块

    3、有完善的视图模板的实现        4、有健全的后台管理系统        5、有强大的缓存支持        …… 企业级web开发,Java还是是王道,PHP比java开发的效率快...manage.py runserver 创建一个自定义的子模块步骤: 1.命令 terminal cd到项目名称下面,django-admin startapp 功能模块名称 2....路由注册到跟模块中的urls文件中,要先从django中引入include, 然后在一级路由中配置一个二级路由 在自定义的模块中完成urls和views的映射 第一个django项目创建成功后,项目结构如下...                     |-- __init__.py # 模块描述文件                      |-- admin.py  # 后台管理系统用来管理子模块中的模型类的文件...M(model) 模型层 V(view) 视图层 T(templates) 模板层 原本的控制器中分发请求的功能,交给了路由 原本的控制器中接受参数的功能,交给了视图 一级访问目录后边不要加$符号

    92630

    Django认证系统并不鸡肋反而很重要

    在使用django-admin startproject创建项目后,Django就默认安装了一个采用session实现的认证系统。这是Django相比于其他框架的一大特点:自带认证系统,开箱即用。...是模型级权限,用户只能具有全部文章的权限。...传统方法 使用request.user.is_authenticated判断,然后重定向到登录页面: from django.conf import settings from django.shortcuts...它的处理是这样的: 如果用户没有登录,就重定向到settings.LOGIN_URL(默认值/accounts/login/),同时把当前的绝对路径添加到查询字符串中,如:/accounts/login...小结 本文介绍了Django自带的基于session的认证系统,阐述了用户、组、认证与授权的相关概念,以及session认证的技术细节,最后讲解了如何快速上手体验的操作步骤。

    1.1K10

    【云+社区年度征文】Django认证系统并不鸡肋反而很重要

    在使用django-admin startproject创建项目后,Django就默认安装了一个采用session实现的认证系统。这是Django相比于其他框架的一大特点:自带认证系统,开箱即用。...是模型级权限,用户只能具有全部文章的权限。...传统方法 使用request.user.is_authenticated判断,然后重定向到登录页面: from django.conf import settings from django.shortcuts...它的处理是这样的: 如果用户没有登录,就重定向到settings.LOGIN_URL(默认值/accounts/login/),同时把当前的绝对路径添加到查询字符串中,如:/accounts/login...小结 本文介绍了Django自带的基于session的认证系统,阐述了用户、组、认证与授权的相关概念,以及session认证的技术细节,最后讲解了如何快速上手体验的操作步骤。

    1.6K70

    django 1.8 官方文档翻译:13-1-2 使用Django认证系统

    修改密码 Django不会在user模型上存储原始的(明文)密码,而只是一个哈希(完整的细节参见文档:密码是如何管理的)。因为这个原因,不要尝试直接操作user的password属性。...例如,视图检查用户的邮件属于特定的地址(例如@example.com),若不是,则重定向到登录页面。...如果通过POST调用并带有用户提交的凭证,它会尝试登入该用户。如果登入成功,该视图重定向到next中指定的URL。...URL名称:password_reset_done 注意 如果提供的email地址在系统中不存在,用户未激活,或者密码不可用,用户仍然会重定向到这个视图,但是不会发送邮件。...可以像其它任何Django模型一样创建和删除用户。可以创建组,并分配权限给用户和组。admin中还会保存和显示对用户模型编辑的日志。

    4.7K20

    Django 之路由篇

    @toc 欢迎阅读本专栏其他文章 Django 之视图篇 Django 之 Models(Models 模型 & 数据表关系) Django 之模板篇...startapp teacher 路由 按照具体的请求url,导入到相应的业务处理模块的一个功能模块 django的信息控制中枢 本质上是接收的URL和相应的处理模块的一个映射 在接收URL请求的匹配上使用了...RE URL的具体格式如urls.py中所示 需要关注两点 接受的URL是什么,即如何使用RE对传入URL进行匹配 已知URL匹配到哪个处理模块 url匹配规则 从上往下一个一个对比 url格式是分级格式...,则按照级别一级一级往下对比,主要对应url包含子url的情况 子url一旦被调用,则不会返回到主url '/one/two/three' 正则以r开头,表示不需要转义,注意尖号(^)和美元符号($)...中处理 如果所有应用URL都集中在MyDjango/urls.py 中,可能导致文件臃肿 可以把urls具体功能逐渐分散到每个app中 从django.conf.urls 导入 include 注意此时

    73987

    【Django】 Python Web 框架基础

    配备了常用的大部分组件 基本配置 路由系统 原生HTML模板系统 视图 view Model模型,数据库连接和ORM数据库管理 中间件 Cookie & Seesion 分页 数据库后台管理系统admin...Django项目 创建项目的指令 $ django-admin startproject 项目名称 如: $ django-admin startproject mysite1 运行 $ cd mysite1...路由地址决定了服务器端如何处理这个请求 query (查询) 可选,用于给动态网页传递参数,可有多个参数,用 “&” 符号隔开,每个参数的名和值用 “=” 符号隔开。...fragment(信息片断) 字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用 fragment 直接定位到某一名词解释。...下面是常见的HTTP状态码: 200 - 请求成功 301 - 永久重定向-资源(网页等)被永久转移到其它URL 302 - 临时重定向 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误

    2.1K20

    Django相关知识点回顾

    2.项目创建 创建项目: django-admin startproject 项目名 创建子应用: python manage.py startapp 子应用 子应用首先到settings配置文件INSTALLED_APPS...return HttpResponse('hello world') 2.1.2url地址配置 1.先在子应用中创建urls.py文件,设置当前子应用中url地址和视图的对应关系。...3.MVT模式(Model模型、View视图、Template模板) 5.URL配置 Django默认url配置风格是在末尾加 /,在子应用中进行url地址配置的时候,建议严格匹配开头和结尾。...# 演示响应时进行页面重定向 # /redirect_test/ # flask: redirect('重定向的url地址') # django: redirect('重定向的url地址') def...使用 1.在配置文件中设置配置项MEDIA_ROOT='上传文件的保存目录' 2.定义模型类时,图片字段的类型使用 ImageField 3.迁移生成表并在admin.py注册模型类,直接登录Admin

    10K51

    Django 系列博客(二)

    1.9后,本应用的相关配置 models.py:数据模型模块,使用ORM框架,类似于MVC模式下的Model层 tests.py:自动化测试模块,可以写自动化测试脚本 views.py:执行相应的逻辑代码模块...(相应什么,如何相应),代码逻辑处理的主要地点,项目的大部分代码所在位置 页面响应 第一个响应 通过配置路由和视图文件来响应第一次连接请求。...配置路由 from django.conf.urls import url from django.contrib import admin # 导入应用视图 import app.views as...render(request, 'index.html') # /index/ 路径重定向到 / 路径,达到渲染index.html页面 def index(request): return...redirect('/') 响应的路由配置为 from django.conf.urls import url from django.contrib import admin # 导入应用视图 import

    61520

    如何搭建 Django 网站

    创建网站 我们将介绍如何创建网站的基本框架,然后您可以对其进行设置,路径选择,模型搭建,视图和模板填充。...这是我们注册我们创建的任何应用程序,静态文件的位置,数据库配置详细信息等的地方。 urls.py定义站点URL到视图的映射。...URL(即127.0.0.1:8000)重定向到URL 127.0.0.1:8000/catalog/; 这是我们将在这个项目中使用的唯一应用程序。...为此,我们将使用一个特殊的视图函数(RedirectView),它将第一个参数作为匹配函数中的/catalog/指定的URL模式path()(在本例中为根URL )重定向到()的新URL 。...这个错误页面是正常的,因为我们没有在catalogs.urls模块中定义任何页面/网址(我们在获取网站根目录的URL时将其重定向到)。 此时我们知道Django正在工作! 完成 恭喜您!

    6.2K3225

    Django实战-信息资讯-CMS后台管理-上

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...其次,需要知道如何实现后台数据的增删改查。对后台的管理,需要给不同用户配置后台管理权限。...实现后台管理权限的配置,可以通过 django 自带的用户模型中的 is_staff 属性,来给对应的用户授予后台操作的权限。...,然后拒绝其访问(403),或者重定向到登录页面等。...只允许 staff 身份的用户访问某个视图,django同样提供了一个便捷的装饰器来实现这个功能: from django.contrib.admin.views.decorators import staff_member_required

    71130

    Django 教程 --- Django 基础

    ,它不需要其他任何东西 它有数以千计的额外软件包 它是可扩展的 Django架构 Django基于MVT(模型-视图-模板)架构。...它由HTML/CSS/Javascript和Jinja文件表示 模板:模板由所需HTML输出的静态部分以及描述如何插入动态内容的一些特殊语法组成 Django 安装 如果系统中没有安装python3(根据系统和操作系统的配置...,以便可以呈现重定向到该应用程序的URL。...('', include("projectApp.urls")), ] 现在,您可以使用默认的MVT模型在应用程序中创建url、模型、视图等,它们将自动包括在您的主项目中。...Django Apps的主要特点是独立性,每个app都作为一个独立的单元来支持主项目。要了解更多关于Django中的应用程序,请访问如何在Django中创建应用程序?

    3.7K21

    Django视图介绍与路由

    一、概述 作用 接收web请求并返回web响应 本质 就是python函数 请求 客户端给服务端的信息 响应 服务端给客户端的信息,可以是一个网页、一个重定向、一个404错误...' 2、path()函数与re_path()函数 概述 在新版本Django2.x中,url的路由表示用path和re_path代替,模块的导入由django1.x版本的from django.conf.urls...当Django响应一个请求时,它会从urlpatterns的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项 view:当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个...view:使用正则表达式 name:使用正则表达式 说明 如果匹配的规则比较复杂建议使用re_path() 3、在根级路由中指定子路由 urlpatterns 一个path对象的列表...path()对象的作用 根据路由匹配不同的视图 导入 from django.urls import path, re_path

    50920
    领券