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

Django 外键引用另一个表中的多个字段

在 Django 中,外键(ForeignKey)通常只引用另一张表的一个字段,比如一个主键或一个唯一标识字段。然而,如果我们需要让一个外键引用另一张表中的多个字段,通常有以下几种方法来实现这种关系。...1、问题背景在 Django 中,模型之间的关系通常使用外键(ForeignKey)来建立。外键允许一个模型中的字段引用另一个模型中的主键。然而,有时我们需要在一个模型中引用另一个模型中的多个字段。...2、解决方案为了在 sales_process 表中引用 product_models 表中的多个字段,我们可以使用复合主键(Composite Key)的方式。复合主键是指由多个字段组成的主键。...以下是如何在 Django 中使用复合主键来实现外键引用另一个表中的多个字段:在 product_models 模型中,添加一个 id 字段作为主键:class product_models(models.Model...划重点Django 不直接支持复合外键,但可以通过添加唯一约束、使用中间表或在查询中使用逻辑约束来实现类似效果。

10310

37.Django1.11.6文档

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

24.4K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    3.6K60

    Django admin 一些有用的设置

    Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.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'] 看一下效果: 这里已经出现了搜索框,可以通过搜索条件来过滤选项...总结 本篇介绍了Django的admin.ModelAdmin中使用autocomplete_fields字段来给关联模型添加过滤搜索。

    65520

    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字典里加了键值对,以模型类为键,配置类对象为值

    48210

    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

    4.1K40

    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 外键...中 将重复出现的部分提取出来,这个根据自己的模版抽取,每个都不相同,静态文件加载 如果一次没有提取好,可以慢慢一点点的抽取,对于一个后端程序员来说这个是一个慢工出细活的过程。

    57000

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

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

    26010

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

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

    72820

    Django2.0新特性之autocomplete_fields

    默认外键展示的坑 拿新闻网站举例,一篇文章肯定是属于某个频道的,这是一个外键。那么我在后台新增文章时,肯定需要选择归属于那个频道。...djangoadmin和xadmin的做法都是把外键数据全部加载出来,渲染到select表中。 当外键的数据量小的时候,这不是个问题,但是如果你的频道有上千个呢?再多点呢?...admin的autocomplete_fields 在Django的2.0版本中,提供了这样的功能,可以在admin配置中,定义autocomplete_fields = ['外键字段']来解决上面说到的问题...因此这个外键字段必须配置了admin才行(并且设置了search_fields配置)。...Django本身的实现很简单,比起我们增加外部库的配置,Django自己直接在admin代码中增加了autocomplete_view以及对应的url,来支持这个逻辑。

    1.4K30

    Django 上传图片和Admin站点5.2

    上传图片 当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个键为中的name 注意:FILES只有在请求的方法为...项中加入django.contrib.admin,Django就会自动搜索每个应用的admin模块并将其导入 ModelAdmin对象 ModelAdmin类是模型在Admin界面中的表示形式 定义:定义一个类...True actions_on_bottom = True list_display 出现列表中显示的字段 列表类型 在列表中,可以是字段名称,也可以是方法名称,但是方法名称默认不能排序 在方法中可以使用...other', {'fields': ('hcontent')}) ) fields与fieldsets两者选一 InlineModelAdmin对象 类型InlineModelAdmin:表示在模型的添加或修改页面嵌入关联模型的添加或修改...编辑base_site.html文件 刷新页面,发现以刚才编辑的页面效果显示 其它管理后台的模板可以按照相同的方式进行修改

    47930
    领券