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

获取Django admin.ModelAdmin以显示两个表的连接

Django是一个基于Python的开源Web应用框架,它提供了一套完整的开发工具和库,用于快速构建高效、安全的Web应用程序。Django admin是Django框架提供的一个强大的后台管理系统,可以帮助开发者快速搭建和管理数据库模型的后台管理界面。

要获取Django admin.ModelAdmin以显示两个表的连接,可以通过以下步骤实现:

  1. 创建两个相关联的模型(表):假设我们有两个模型A和B,它们之间存在外键关系。
代码语言:txt
复制
from django.db import models

class ModelA(models.Model):
    # 模型A的字段
    pass

class ModelB(models.Model):
    model_a = models.ForeignKey(ModelA, on_delete=models.CASCADE)
    # 模型B的字段
    pass
  1. 创建一个自定义的ModelAdmin类:在Django admin中,可以通过自定义ModelAdmin类来定制后台管理界面的显示和行为。
代码语言:txt
复制
from django.contrib import admin

class ModelBInline(admin.TabularInline):
    model = ModelB

class ModelAAdmin(admin.ModelAdmin):
    inlines = [ModelBInline]

admin.site.register(ModelA, ModelAAdmin)

在上述代码中,我们创建了一个ModelBInline类,它继承自admin.TabularInline,表示以表格形式显示ModelB的相关记录。然后,我们在ModelAAdmin类中将ModelBInline类添加到inlines属性中,以便在ModelA的后台管理界面中显示相关的ModelB记录。

  1. 注册ModelA和ModelB的后台管理:最后,我们需要将ModelA和ModelB以及它们的自定义ModelAdmin类注册到Django admin中。
代码语言:txt
复制
admin.site.register(ModelA, ModelAAdmin)
admin.site.register(ModelB)

通过以上步骤,我们就可以在Django admin中显示两个表的连接关系。在ModelA的后台管理界面中,会显示与每个ModelA对象相关联的ModelB对象的表格形式。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。

  • 腾讯云服务器(CVM):提供弹性、安全、高性能的云服务器实例,可满足各种规模和需求的应用场景。了解更多信息,请访问:腾讯云服务器(CVM)
  • 腾讯云数据库(TencentDB):提供高可用、可扩展、安全可靠的云数据库服务,支持多种数据库引擎和存储类型。了解更多信息,请访问:腾讯云数据库(TencentDB)
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 Django 显示数据

1、问题背景当我们使用 Django 进行 Web 开发时,经常需要在 Web 页面上显示数据库中数据。例如,我们可能需要在一个页面上显示所有用户信息,或者在一个页面上显示所有文章标题和作者。...那么,如何使用 Django显示数据呢?2、解决方案为了使用 Django 显示数据,我们需要完成以下几个步骤:在 models.py 文件中定义数据模型。...数据模型是 Django 用于表示数据库中数据类。...例如,如果我们想显示所有用户信息,那么我们可以在 models.py 文件中定义如下数据模型:from django.db import modelsclass User(models.Model):...例如,如果我们想在一个页面上显示所有用户信息,那么我们可以在 views.py 文件中定义如下视图函数:from django.shortcuts import renderdef users(request

11010
  • Django】当大型项目采用Django框架对于QueryDict以及模板表单在Admin 管理工具使用

    ) >>> q.getlist('a') ['1', '2'] >>> q['a'] # returns the last ['2'] 表单 在模板末尾,我们添加了一个rlt令牌,为处理结果预留空间...后面还有一个标签{%csrf_token%}。csrf全称是跨站点请求伪造。这是Django提供防止伪装提交请求功能。POST方法提交表单必须具有此标签。...通过解析请求,服务器可以从客户端获取数据,并根据URL提供特定服务。...每个视图函数负责返回一个HttpResponse对象,该对象包含生成响应。 视图层中有两个重要对象:请求对象和响应对象。 Admin 管理工具 我们可以自定义管理页面替换默认页面。...在默认页面显示中,不能将两者分开反映其相关性。我们可以使用内联显示将标记附加到联系人编辑页面。

    1.7K20

    Django内置Admin

    Django内置Admin是对于model中对应数据进行增删改查提供组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttypes...django.contrib.messages django.contrib.sessions 模板context_processors:...):         list_display = ('user', 'pwd',) ModelAdmin中提供了大量可定制功能,如 1. list_display,列表时,定制显示列。...New in Django 1.10. 12. save_on_top = False,详细页面,在页面上方是否也显示保存删除等按钮 13. inlines,详细页面,如果有其他和当前做FK,那么详细页面可以进行动态增加和删除...delete_selected_confirmation_template = None object_history_template = None 16. raw_id_fields,详细页面,针对FK和M2M字段变成Input

    1.4K90

    Superset sqllab连接hive无法显示信息问题

    一、问题 使用superset,连接hive时(hive引擎是spark),名和信息无法加载,加载出来了一堆数据库名图片二、解决问题1、原因 这个问题原因是superset...里面是使用pyhive去连接名加载是通过"show tables in {dbname}"去获取,而spark sql和hive sql"show tables"执行返回结果格式不一样,pyhive...最新版本20.0.1并没有支持spark方言,平时使用没问题,但是放在使用superset去连接时候,显示就混乱。...spark sql图片hive sql 图片然后我们找到pyhive关于show tables代码,位置:~/python3.8/site-packages/pyhive/sqlalchemy_hive.pydef...self.identifier_preparer.quote_identifier(schema) return [row[0] for row in connection.execute(query)]这里单纯时候第一列作为

    1.3K30

    Django教程第1章 | 快速入门 | 基础知识

    MVC 一种插件式、松耦合方式连接在一起。 模型(M)- 编写程序应有的功能,负责业务对象与数据库映射(ORM)。 视图(V)- 图形界面,负责与用户交互(页面)。...manage.py: 一个实用命令行工具,可让你各种方式与该 Django 项目进行交互。...name = models.CharField(max_length=50) def __unicode__(self): return self.name 这里有两个...如果你之前还未创建结构,可使用以下命令创建: $ python manage.py makemigrations TestModel # 让 Django 知道我们模型有一些变更 $ python...而在默认页面显示中,将两者分离开来,无法体现出两者从属关系。我们可以使用内联显示,让 Tag 附加在 Contact 编辑页面上显示

    25010

    Django admin管理工具使用、定制及源码解析

    BlogAdmin(admin.ModelAdmin): #listdisplay设置要显示在列表中字段(id字段是Django模型默认主键) list_display...过滤器如果是外键需要遵循这样语法:本表字段__外键显示字段。...例如,有两个模型,一个是订单主表(BillMain),记录主要信息;一个是订单明细(BillSub),记录购买商品品种和数量等。...我们也可以在修改数据时获取保存前数据: ? 通过change参数,可以判断是修改还是新增,同时做相应操作。上述代码就是在替换磁盘时候修改状态,并写入日志。...,使之显示过滤后数据 下面的代码表示,car字段会根据当前登录用户显示此用户所拥有的车 1 2 3 4 5 class MyModelAdmin(admin.ModelAdmin

    4K40

    Django流程_菜鸟裹裹收费标准

    Django 教程 一、Django 安装 1、Django 版本对应 Python 版本: 2、Django下载地址: 3、安装(无需下载) 4、验证安装 cmd进入python 获取版本信息 二、.../ 3、安装(无需下载) 打开cmd,输入:pip install Django==1.11.4,然后回车 4、验证安装 cmd进入python 获取版本信息 import django django.get_version.../F 4、目录层级说明 manage.py 一个命令行工具,可以让你各种方式与该Django项目进行交互 init.py 一个空文件,告诉Python该项目是一个Python包 settings.py...项目的配置文件 urls.py 项目的URL申明,一份由Django驱动网站“目录” wsgi.py 一个WSGI兼容Web服务器入口,以便运行你项目 三、基本操作 1、设计机构 a、...): inlines = [StudentsInfo] 布尔值显示问题 class StudentsAdmin(admin.ModelAdmin): def gender(self): if self.sgender

    1.3K30

    四、其它(一)ModelAdmin对象InlineModelAdmin对象重写admin模板Paginator对象Page对象示例

    ) class HeroAdmin(admin.ModelAdmin): 通过重写admin.ModelAdmin属性规定显示效果,属性主要分为列表页、增加修改页两部分 列表页选项 “操作选项”位置...search_fields = ['hname'] 增加与修改页选项 fields:显示字段顺序,如果使用元组表示显示到一行上 class HeroAdmin(admin.ModelAdmin):...子类TabularInline:表格形式嵌入 子类StackedInline:形式嵌入 class HeroInline(admin.TabularInline): model =...编辑base_site.html文件 刷新页面,发现以刚才编辑页面效果显示 其它管理后台模板可以按照相同方式进行修改 五、分页 Django提供了一些类实现管理数据分页,这些类位于django/...,再执行模型代码,生成最张html,返回给浏览器,这个过程将页面与数据集成到了一起,扩展性差 改进方案:通过ajax方式获取数据,通过dom操作将数据呈现到界面上 推荐使用框架ajax相关方法,不要使用

    4.5K20

    Django Admin 后台自定制技巧

    Django最强大部分之一是自动管理界面。它从模型中读取元数据,提供一个快速模型为中心界面,受信任用户可以在其中管理您网站上内容。管理员建议用法仅限于组织内部管理工具。...import admin from MyWeb.models import * # 必须继承ModelAdmin基类,才可以调整参数,HostDB则是你名称 @admin.register(HostDB...import admin from MyWeb.models import * # 必须继承ModelAdmin基类,才可以调整参数,HostDB则是你名称 @admin.register(HostInfo...基类,才可以调整参数,HostDB则是你名称 @admin.register(HostInfo) class MyAdmin(admin.ModelAdmin): admin.site.site_title...基类,才可以调整参数,HostDB则是你名称 @admin.register(HostInfo) class MyAdmin(admin.ModelAdmin): admin.site.site_title

    1.3K20

    Django admin管理工具TabularInline类用法详解

    TabularInline类用于在A页面上编辑B字段,举例说明,如果models.py中有Staff、Job两个model: from django.db import models class...class StaffAdmin(admin.ModelAdmin): inlines = [ JobInline, ] 如果想编辑第三个,也可以直接加上,比如models.py中职员还有一个工资...): inlines = [ JobInline, SalaryInline ] Django提供了两个InlineModelAdmin子类,分别是TabularInline和StackedInline...补充知识:django admin TabularInline raw_id_fields 添加查询 搜索小图标显示 问题:在django app admin TabularInline类使用了下面引用了...以上这篇Django admin管理工具TabularInline类用法详解就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.1K20

    Django快速入门——投票程序(7) 自定义后台

    自定义后台 自定义表单 通过admin.site.register(Question)注册Question模型,Django会创建默认表单在后台显示。...但有时需要自定义后台显示,可以通过继承admin.ModelAdmin实现: # polls/admin.py from django.contrib import admin from .models...不过,现在选项占用区域太大了。Django 提供了一种表格式单行显示关联对象方法。...自定义后台更改列表 现在投票后台页看起来很不错,让我们对问题列表页面进行一些调整——改成一个能展示系统中所有投票页面。默认情况下,Django 显示每个对象 str() 返回值。...为此,使用 list_display属性,它是一个包含要显示字段名元组,在更改列表页中形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):

    23340

    Django admin 一些有用设置

    import Blog    #Blog模型管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin):     #listdisplay设置要显示在列表中字段...过滤器如果是外键需要遵循这样语法:本表字段__外键显示字段。如:“user__user_name” 3、颜色显示 想对某些字段设置颜色,可用下面的设置: ?...3、一对多关联 还有一种比较特殊情况,父子表情况。编辑父之后,再打开子表编辑,而且子表只能一条一条编辑,比较麻烦。 这种情况,我们也是可以处理,将其放在同一个编辑界面中。...我们也可以在修改数据时获取保存前数据: ? 通过change参数,可以判断是修改还是新增,同时做相应操作。上述代码就是在替换磁盘时候修改状态,并写入日志。  代码: ?...9.自定义列表字段 上面的一对多和多对多可以数据编辑中显示,但在列表中没有显示。有时还需要显示一些其他东西。例如两个字段相乘计算结果等等。这些都可以通过自定义列表字段处理和显示

    2.6K70
    领券