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

Django在ModelAdmin中添加具有相同外键的多个记录

Django是一个基于Python的开源Web应用框架,它提供了一种快速开发高质量Web应用的方式。在Django中,ModelAdmin是一个用于管理后台数据模型的类,它提供了一些默认的管理功能,如增删改查等。

要在ModelAdmin中添加具有相同外键的多个记录,可以通过以下步骤实现:

  1. 首先,在你的Django项目中创建一个新的数据模型,该模型将具有外键关联到其他模型。例如,假设你有一个模型叫做Book,它具有一个外键关联到Author模型。
代码语言:python
复制
from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
  1. 接下来,在你的应用程序的admin.py文件中,创建一个新的ModelAdmin类,并将其注册到admin.site.register()函数中。在这个类中,你可以定义一些方法来处理添加具有相同外键的多个记录的逻辑。
代码语言:python
复制
from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        # 获取外键关联的作者对象
        author = obj.author

        # 创建多个具有相同外键的记录
        for i in range(5):
            book = Book(title=f"{obj.title} {i}", author=author)
            book.save()

admin.site.register(Book, BookAdmin)

在上面的代码中,我们重写了save_model()方法,在保存模型对象时,会自动创建5个具有相同外键的Book记录。

  1. 最后,通过访问Django的后台管理界面,你可以使用ModelAdmin中定义的逻辑来添加具有相同外键的多个记录。在添加或编辑Book对象时,它会自动创建5个具有相同外键的记录。

这是一个简单的示例,展示了如何在Django的ModelAdmin中添加具有相同外键的多个记录。当然,根据实际需求,你可以根据自己的业务逻辑进行更复杂的处理。

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

  • 腾讯云服务器(CVM):提供弹性计算能力,可根据业务需求灵活调整配置,支持多种操作系统和应用场景。详情请参考:腾讯云服务器
  • 腾讯云数据库MySQL版:提供高性能、可扩展的MySQL数据库服务,支持自动备份、容灾、监控等功能。详情请参考:腾讯云数据库MySQL版
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的云端存储服务,适用于图片、视频、文档等各种类型的文件存储和分发。详情请参考:腾讯云对象存储(COS)
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django开发取消约束实现

# setting设置 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", } 补充知识:django-给关系传值...,删除外关系 反查: 表关系里 related_name = ‘反查name’,自己不设置,django也会默认设置为class小写名字+_set , ex: book_set....''' 两种方法 教室ClassRoom和教室编号ClassNumber 字段django类里名(room_number)在数据库名(room_number_id) '''      # 一.1...  可以add(t, t1, t2)多个对应关系 s.save() return HttpResponse("ojbk") 删除关系数据 先查出对应关系数据,删除 class ModelStudy...s.teacher.remove(x) return HttpResponse("ojbk") 以上这篇django实现在开发取消约束就是小编分享给大家全部内容了,希望能给大家一个参考。

3.6K10

37.Django1.11.6文档

同时,还有可能两个结果列表并不包含相同数据库记录,因为两次请求期间有可能有Entry被添加进来或删除掉。...这是必需。 InlineModelAdmin.fk_name 模型上名称。 大多数情况下,这将自动处理,但如果同一父模型有多个,则必须显式指定fk_name。...使用具有两个或多个模型与同一个父模型 有时可能有多个到同一个模型。 ...这是因为,就管理而言,through只是一个具有两个字段而不是多对多关系模型。 在所有其他方面,InlineModelAdmin与任何其他方面完全相同。 ...相同URLconf 多个管理站点 同一个Django供电网站上创建管理站点多个实例很容易。 只需要创建AdminSite 多个实例并将每个实例放置不同URL 下。

24.3K80

35.Django2.0文档

如果发觉自己多个模板之间拷贝代码,你应该考虑将该代码段放置到父模板某个 {% block %} 。...如果只想在上级代码块基础上添加内容,而不是全部重载,该变量就显得非常有用了。 不允许同一个模板定义多个同名 {% block %} 。...它有一个或多个作者(和作者是多对多关联关系[many-to-many]), 只有一个出版商(和出版商是一对多关联关系[one-to-many],也被称作          [foreign key...我们可以对任意字段进行排序,如果需要以多个字段为标准进行排序(第二个字段会在第一个字段相同情况下被使用到),使用多个参数就可以了,如下: ?...例如,我们book数据库膨胀到拥有数千条publishers记录,以致于book添加页面装载时间较久,因为它必须把每一个publisher都装载并显示`` 下拉框``

11.3K100

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

ModelAdmin类可以控制不同模型Admin界面展示方式,主要包括列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法,还有一种方法,就是使用装饰器注册,... = 'unknown' 以上通过指定方法属性来控制显示是新老版本通用Django3.2可以通过给装饰器传参来解决:   model.py: 1234567891011121314151617...: 123456789101112 from XXX import Testfrom django.contrib import admin class TestAdmin(admin.ModelAdmin...,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括字段(注意list_display是不能直接接收字段),会将对应字段值列出来,一般用于快速过滤有重复值字段...12 class TestAdmin(admin.ModelAdmin):    search_fields = ['id','name'] 搜索框中进行搜索时,Django 会将搜索查询拆分成多个

1.3K30

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

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

3.6K60

Django admin 一些有用设置

Django自带后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以各个appadmin.py文件中进行控制。以下是我最近摸索总结出比较实用配置。...import Blog    #Blog模型管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin):     #listdisplay设置要显示列表字段...list_editable 设置默认可编辑字段     list_editable = ['machine_room_id', 'temperature']        #fk_fields 设置显示字段...过滤器如果是需要遵循这样语法:本表字段__表要显示字段。如:“user__user_name” 3、颜色显示 想对某些字段设置颜色,可用下面的设置: ?...但是,我们看到标题并不是我们想要,那么如何设置标题呢? 添加一行代码:colored_status.short_description = u"状态" ? 函数结束之后添加上面代码即可 ?

2.6K70

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

最近博客在做新功能,就是增加了两个模型,分别是专题和主题,主要就是用来对文章进行系列划分,在这个设计过程,文章和主题会进行一个关联,当主题数量很多时候,文章选择要关联主题时候会非常难选。...一般遇到这种筛选,在前端里面都是可以进行输入来进行过滤,所以我就查看了 Django文档 找到了可以添加这个功能方法,就是autocomplete_fields字段。...= ['name', 'subject__name'] @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): # 可以给选择增加搜索...,前提是管理模型必须设置search_fields作为搜索条件 autocomplete_fields = ['topic'] 看一下效果: 这里已经出现了搜索框,可以通过搜索条件来过滤选项...总结 本篇介绍了Djangoadmin.ModelAdmin中使用autocomplete_fields字段来给关联模型添加过滤搜索。

50020

Django之admin管理工具

=('id', 'caption', 'author', 'publish_time')   2,admin界面汉化   默认admin后台管理界面是英文,可以settings.py设置:   LANGUAGE_CODE...='zh-hans'   TIME_ZONE='Asia/Shanghai'   二、记录列表界面设置   1,记录列表基本设置 from django.contrib import admin from...for obj_author in obj.author.all()]) #listdisplay设置要显示列表字段(id字段是Django模型默认主键) list_display...ordering = ('-price',) #list_editable 设置默认可编辑字段 list_editable = ['price'] #fk_fields 设置显示字段..._registry[model] = admin_class(model) site=AdminSite()   注册完模型类之后,只是完成了_registry字典里加了键值对,以模型类为,配置类对象为值

45110

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

如果在程序运行期间,有很多地方都需要使用配置文件内容,也就是说,很多地方都需要创建 AppConfig 对象实例,这就导致系统存在多个 AppConfig 实例对象,而这样会严重浪费内存资源,尤其是配置文件内容很多情况下...BlogAdmin(admin.ModelAdmin): #listdisplay设置要显示列表字段(id字段是Django模型默认主键) list_display...过滤器如果是需要遵循这样语法:本表字段__表要显示字段。...但是,我们看到标题并不是我们想要,那么如何设置标题呢? 添加一行代码:colored_status.short_description = u"状态" ? 函数结束之后添加上面代码即可 ?...添加一条对应url urls.py 1 2 3 4 5 6 7 from django.conf.urls import url from hys_operation

4K40

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

Django想要把模型类聚合得到想要数据可以用F对象。 比如有模型类A和B,A和B之间有关联在一起,A是子表,B是父表(反过来没试过。。...Admin页面显示父表,编辑子表 默认情况下,ModelAdmin只允许您管理模型“本身”字段,而不是相关模型.以下方法将实现,应用类列表管理显示页面,显示父表字段;在编辑页面,父表对子表进行编辑...models.Model): # 写一个方法,定义管理页面上能够显示字段字段 # grade为Students模型检表,level为Grades模型检表,那么为Level模型字段...添加是'模型类字段' # 如果是需要遵循这样语法:本表字段__(双下划线)检表字段或检表字段__最终表要显示字段。...为子表(有所在表) class ScoreInline(admin.TabularInline): # Score 必须是models.py模型名称,大小写必须要匹配.这个模型为子表,以便可以被父表编辑

1.4K20

Python:Django搭建博客

media 这两个文件夹 配置 pycharm 运行参数 配置完成后点击 pycharm 运行按钮,浏览器输入 127.0.0.1:8000 访问,出现小火箭升空表示 Django...安装成功, 访问 Django-admin 界面, 浏览器输入 127.0.0.1:8000/admin,看到 Django 管理,需要输入用户名密码,输入用户名密码后可以跳转到 Django 管理页面表示...,分类 id tag_id ManyToManyField ,标签 id 分类表 字段 类型 备注 id PrimaryKey 主键 name CharField...password CharField 密码 评论表 字段 类型 备注 id PrimaryKey 主键 user_id ManyToManyField ... 将重复出现部分提取出来,这个根据自己模版抽取,每个都不相同,静态文件加载 如果一次没有提取好,可以慢慢一点点抽取,对于一个后端程序员来说这个是一个慢工出细活过程。

54700

Django Admin后台管理:高效开发与实践

查看、编辑和删除记录:点击列表记录,可以查看详细信息并进行编辑或删除操作。 通过这一章学习,你将对Django Admin有基本了解,并能够开始使用它来管理你数据模型。...使用内联模型:父模型Admin类添加内联模型,如inlines = [RelatedModelInline]。...自定义字段:可以自定义用户模型添加额外字段,如手机号码、地址等。 自定义认证后端:可以编写自定义认证后端来处理特定认证逻辑。...权限检查:视图或模板,可以使用user.has_perm()或user.has_perms()来检查用户是否具有特定权限。...Admin actions: 添加批量发布和批量删除等Admin actions,可以admin.py文件为相应模型添加自定义Admin actions。

7610

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

管理操作 简而言之,Django管理后台基本流程是,“选择一个对象并改变它”。大多数情况下,这是非常适合。然而当你一次性要对多个对象做相同改变,这个流程是非常单调乏味。...在这些例子Django管理后台可以让你实现和注册“操作” —— 仅仅只是一个以已选中对象集合为参数回调函数。 Django自带管理页面中都能看到这样例子。...添加操作到 ModelAdmin 接下来,我们需要把操作告诉ModelAdmin。它和其他配置项工作方式相同。...也就是说,异常处理和使用django.contrib.admin.ModelAdmin.message_user()可以响应展示用户友好问题描述。...字典是操作名称,值是 (function, name, short_description)元组。 多数情况下,你会按需使用这一方法,来从超类列表移除操作。

69720
领券