首页
学习
活动
专区
工具
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.1K20

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

69520

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) 模板层 原本控制器中分发请求功能,交给了路由 原本控制器中接受参数功能,交给了视图访问目录后边不要加$符号

90530

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

4.6K20

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 注意此时

72087

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

58320

如何搭建 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.1K3225

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

69030

Django 教程 --- Django 基础

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

3.6K11

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

48720
领券