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

Django admin内联有2个外键指向相同的模型

Django admin内联是指在Django框架中使用admin后台管理系统时,可以在一个模型的编辑页面中嵌入其他相关模型的编辑表单,以方便管理和操作数据。

对于有2个外键指向相同的模型的情况,可以通过使用TabularInlineStackedInline来实现内联功能。这两个类都是Django admin中的内联类,用于在编辑页面中显示相关模型的表单。

TabularInline以表格形式展示相关模型的表单,适用于关联模型较多的情况。StackedInline以垂直堆叠的形式展示相关模型的表单,适用于关联模型较少的情况。

以下是一个示例代码,展示如何在Django admin中使用内联功能处理有2个外键指向相同模型的情况:

代码语言:txt
复制
from django.contrib import admin
from .models import ModelA, ModelB

class ModelBInline(admin.TabularInline):
    model = ModelB

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

admin.site.register(ModelA, ModelAAdmin)

在上述代码中,ModelBInline是一个内联类,用于将ModelB模型的表单嵌入到ModelA模型的编辑页面中。ModelAAdminModelA模型的管理类,通过inlines属性将ModelBInline内联类添加到ModelA模型的编辑页面中。

这样,在Django admin中编辑ModelA模型时,会同时显示ModelB模型的表单,方便对两个外键指向相同模型的数据进行管理和操作。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库(TencentDB)、腾讯云对象存储(COS)。

腾讯云产品介绍链接地址:

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

相关·内容

django模型中有关系表删除相关设置

0904自我总结 django模型中有关系表删除相关设置 一.一对一 例如有Author、AuthorDetail两表 author = models.OneToOneField(to='Author...db_constraint=False, on_delete=models.CASCADE ) 1)关系字段放在AuthorDetail表中:作者删除详情删除,详情删除作者保留 2)作者找详情用 ...related_name(detail),详情找作者用 字段(author) 3)db_constraint断开表关联,on_delete规定逻辑关联删除动作,models.CASCADE级联删除...):出版社删除书不动,书删除没有任何影响 2)出版社找书用 related_name(books),书找出版社 字段(publish) 3)db_constraint断开表关联,on_delete...,反向找 字段related_name 3)db_constraint断开表关联,on_delete不存在(不设置,本质在第三张表中设置,且一定是级联)

3K20

Django 1.10中文文档-第一个应用Part7-自定义管理站点

Djangoadmin站点中,自动地将所有的关系展示为一个select框。在我们例子中,目前只有一个question对象存在。 请注意图中绿色加号,它连接到Question模型。...每一个包含关系对象都会有这个绿色加号。点击它,会弹出一个新增Question表单,类似Question自己添加表单。...填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice关联对象。通俗讲就是,新建一个Question并作为当前Choice。...这个html文件来自Django源码,它位于django/contrib/admin/templates目录。...想要重写一个模板文件,只需要做和重写base_site.html相同操作就行——将它从默认目录拷贝到你自定义目录中,然后修改它。

3.6K60

day67-Django进阶-ORM操作数据库+django环境搬运

1.如何新建Django超级用户 [在终端输入 python manage.py createsuperuser 依次输入用户名密码] [项目启动后,访问 /admin/ ,输入用户名密码]...image.png 13.多对多 + 一对多 add() 一对多 # 将 QuerySet 里所有对象全部强行指向当前查询对象 books = models.Book.objects.filter...) add() 多对多 # 将 QuerySet 里面的对象保留已有,新增指向自己 # add 需要打散 books = models.Book.objects.filter(id__gte=...,即指向可以为空 remove() 一对多,多对多都一样 # 接收QuerySst,先筛选出符合条件要删除对象 # 打散出入对象,并不解除所有,只解除筛选出对象 books = models.Book.objects.filter...models.Publisher.objects.get(id=3).book_set.remove(*books, ) clear() 一对多,多对多都一样 # 直接简单暴力清除所有跟查询对象相关关联

54200

【云+社区年度正文】Django从入门到精通No.2----模型

django从入门到精通No.2----模型 一、前言 学过orm系统自然之道模型重要性,很多web站点都需要与数据库交互,这个时候模型设计就显得尤为重要,一个好模型会使得项目方便管理并且易于维护...1.多对一 因为是关联关系,所以我们必须指定两个类来进行相互操作,这里涉及到一个操作,即ForeignKey字段,而且要定义在多一方。...db_constraint=True # 是否在数据库中创建约束 parent_link=False # 在Admin中是否显示关联数据 2.多对多 多对多表...,必须设中间关联表,关联表设独立主键,并引入两个“多”头主键作为关联表。...,你可以指定一个中介模型来定义多对多关系,可以将其它字段放在中介模型中,源模型字段使用through参数指向中介模型

2.1K00

Django | 开发】 面试招聘信息网站(为已有数据库生成管理后台)

推荐一款找工作神器网站: 宝藏网站 |笔试题库|面试经验|实习招聘推| 该文章收录专栏 ✨—【Django | 项目开发】从入门到上线 专栏—✨ 1)目标 2) 生产表 创建新项目并注册到项目中...,我们可以手动删除不要模型,不过建议方法是添加我们想要添加对应模型,我们可以添加参数 python manage.py inspectdb [models,models...] > 应用/model.py...inspectdb > candidates\models.py # 已有数据库生成表(默认可以更改) ( 注: 一张表生成一个模型 ) 删除不需要维护模型表,并将为AuthUser更改为...User,如果一个模型有多个,则需要并对其添加related_name 区分 ---- 注意点一: (这里managed = False 是指不与数据库里面的结构保持一致,如果保持同步,会将原生产环境内容覆盖掉...,) 注意点二: 由于生产model.py文件 编码格式为UTF-16,更改文件编码为UTF-8,不然报错 3)注册admin from django.contrib import admin

41510

Django之ForeignKey和ManyToManyField多表查询

只有在db_constraint=True时Django model才会在数据库上建立约束, 在该值为False时不建立约束. 默认db_constraint=True....如Entry.blog作为Blog,默认情况下Blog.entry_set是包含所有参照BlogEntry示例查询集,可以使用查询集API取出相应实例。...ManyToManyField.through_fields 上文示例中Membership 有两个指向Person (person 和inviter),这使得关联关系含混不清并让Django 不知道使用哪一个...在这种情况下,必须使用through_fields 明确指定Django 应该使用哪些 through_fields 接收一个二元组('field1', 'field2'),其中field1 为指向定义...ManyToManyField 字段模型键名称(本例中为group),field2 为指向目标模型名称(本例中为person).

1.7K10

Django项目知识点(三)

本文一篇完全介绍django最重要model 6.django model 模型是数据唯一而且准确信息来源。它包含正在储存数据重要字段和行为。一般来说,每一个模型都映射一个数据库表。...first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) 但是对于大多数模型都是要机构字段相同...Django自动为每个设置了admin对象创建添加,删除和修改权限。...,也可另立主键并将“一”和“多”两表主键作为关联表; 多对多表,则必须设中间关联表,关联表设独立主键,并引入两个“多”头主键作为关联表。...SET_NULL:此值设置,会把设置为null,前提是允许为null。 SET_DEFAULT:此值设置,会把设置为默认值。 SET():此值设置,会调用外面的值,可以是一个函数。

1.8K30

Django 3.1 官网学习路线

字段还可以有各种可选参数;在本例中,我们将投票默认值设置为 0。 最后,请注意使用定义了关系。这告诉 Django 每个选择都与一个问题相关。...按照惯例,Django 会将"_id"附加到外字段名。(是的,你也可以重写这个。) 关系是通过约束来显式。...不要担心可延期部分;它告诉 PostgreSQL 在事务结束之前不要强制执行。... 第五部分:自定义管理表单 通过将问题模型注册为 admin.site.register(Question),Django 能够构造一个默认表单表示。...“添加选择”表单如下所示: 在该表单中,“Question”字段是一个选择框,包含数据库中每个问题。Django 知道一个应该在管理中表示为一个框。在我们例子中,目前只存在一个问题。

8.1K10

Python:Django搭建博客

,分类 id tag_id ManyToManyField ,标签 id 分类表 字段 类型 备注 id PrimaryKey 主键 name CharField...password CharField 密码 评论表 字段 类型 备注 id PrimaryKey 主键 user_id ManyToManyField ...,用户名 id blog_id ManyToManyField ,博客 id create_time DateTimeField 创建时间 content TextField...OK 用 django-admin 管理 数据库迁移完成会在 post 应用下生成一个迁移文件,接下来在 django-admin 中注册模型,便于我们用 django-admin 管理 /post...中 将重复出现部分提取出来,这个根据自己模版抽取,每个都不相同,静态文件加载 如果一次没有提取好,可以慢慢一点点抽取,对于一个后端程序员来说这个是一个慢工出细活过程。

54500

使用Django实现把两个模型数据聚合在一起

Django中想要把模型类聚合得到想要数据可以用F对象。 比如有模型类A和B,A和B之间有关联在一起,A是子表,B是父表(反过来没试过。。...models.Model): # 写一个方法,定义在管理页面上能够显示字段字段 # grade为Students模型检表,level为Grades模型检表,那么为Level模型字段...添加是'模型类字段' # 如果是需要遵循这样语法:本表字段__(双下划线)检表字段或检表字段__最终表要显示字段。...为子表(有所在表) class ScoreInline(admin.TabularInline): # Score 必须是models.py中模型名称,大小写必须要匹配.这个模型为子表,以便可以被父表编辑...以上这篇使用Django实现把两个模型数据聚合在一起就是小编分享给大家全部内容了,希望能给大家一个参考。

1.4K20

Django之路由层

一对多字段创建时候同步到数据中表字段会自动加_id后缀,如果我们手动加了_id orm也会在给我们加一次,所以我们这里不要加_id """ # 书跟作者是多对多关系字段建在任意一方都可以...字段建在任意一方都可以,但是建议建在查询频率较高那一方 author_detail = models.OneToOneField(to='Author_detail') # fk +...unique """ 一对一字段创建时候同步到数据中表字段会自动加_id后缀,如果我们手动加了_id orm也会在给我们加一次,所以我们这里不要加_id """ class...,建议建在查询频率高一方 一对多字段创建时候同步到数据中表字段会自动加_id后缀,如果我们手动加了_id orm也会在给我们加一次,所以我们这里不要加_id 多对多关系,django orm会自动帮我们创建书籍和作者第三张关系表...urlpatterns = [ path('admin/', admin.site.urls), ] 2.Django2.x中re_path对应Django1.x中url功能相同

1.3K21

Django管理后台技巧分享之实例关系搜索,autocomplete_fields字段使用

我希望在文章选择主题时候可以输入关键字来搜过滤,这样可以减少可选项。基于这个需求,我又重新去看了一下Django关于admin教程,终于找到了方法,现在分享一下。...问题现象 首先来看一下这个问题现象,其实这个在Django模型设计里面非常常见,就是当模型之间有关联时候,给一个模型实例选择关联模型实例时候,如果对方数量很多,会导致查找非常麻烦。...= ['name', 'subject__name'] @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): # 可以给选择增加搜索...,前提是管理模型必须设置search_fields作为搜索条件 autocomplete_fields = ['topic'] 看一下效果: 这里已经出现了搜索框,可以通过搜索条件来过滤选项...总结 本篇介绍了Djangoadmin.ModelAdmin中使用autocomplete_fields字段来给关联模型添加过滤搜索。

49020

django 1.8 官方文档翻译: 2-5-6 多数据库

这是纯粹验证操作,和多对多操作使用它来决定两个对象之间是否应该允许一个关联。...这个方法还可以用来决定一个给定数据库上某个模型可用性。 注意,如果这个方法返回False,迁移将默默地不会在模型上做任何操作。这可能导致你应用某些操作之后出现损坏、表多余或者缺失。...目前不提供跨多个数据库或多对多关系支持。...如果你使用一个路由来路由分离到不同数据库上,这些模型定义任何和多对多关联必须在单个数据库内部。 这是因为引用完整性原因。...然而,如果你正在使用SQLite 或MySQLMyISAM 表,则没有强制性引用完整性;结果是你可以‘伪造’跨数据库。但是Django 官方不支持这种配置。

1.5K20

Django3.2边学边记—Adimn站点管理

准备工作 创建管理员用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 在admin.py中注册模型类 1234567 from django.contrib...控制显示列,Django 会尝试按照这个顺序解释 list_display 每个元素: 一个模型字段。 一个可调用对象。 一个代表 ModelAdmin 属性字符串。...一个代表模型属性字符串。 用模型属性显示 模型id title pub_date 三个属性 123 class TestAdmin(admin.ModelAdmin):    ...    ...过滤器 用 list_filter 来激活管理更改列表页面右侧侧栏过滤器,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括字段(注意list_display...是不能直接接收字段),会将对应字段值列出来,一般用于快速过滤有重复值字段。

1.3K30

django2实战2.创建博客应用创建应用文章表字段设计激活应用开启后台将post模型注册到后台自定义文章显示字段增加可选操作

而淘宝下聚划算属于一个应用 在django中,一个应用是由模型、视图、模板以及url配置组成。...url不可重复 author: 文章作者,此字段是,与user中相关联,当user表用户删除时,该用户发表文章也将被删除 详细说明 body: 文章详情,使用text类型 publish:...admin index 将post模型注册到后台 blog/admin.py from django.contrib import admin from .models import Post admin.site.register...post显示字段 增加可选操作 mysite/blog/admin.py from django.contrib import admin from .models import Post @admin.register...过滤 下一节将讲解如何使用django模型查询语句。如果你感兴趣,请关注我django2实战文集 如果觉得本文对你有所帮助,点个赞,或者赏杯咖啡钱,你认可对我很重要

1K30
领券