添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首页
学习
活动
专区
工具
TVP
最新优惠活动
发布
精选内容/技术社群/优惠产品, 尽在小程序
立即前往

Django:在组合框中显示外键模型的值并选择它

Django是一个开源的Python Web框架,用于快速开发高质量的Web应用程序。它采用了MTV(Model-Template-View)的设计模式,提供了强大的数据库访问抽象层和灵活的URL路由配置,使开发人员能够轻松构建功能丰富的Web应用。

在Django中,外键(ForeignKey)是一种关系字段,用于建立模型之间的关联关系。当一个模型与另一个模型存在外键关系时,可以通过组合框(下拉列表)来显示外键模型的值并选择它。

以下是在Django中显示外键模型值并选择的步骤:

  1. 定义模型:首先,在Django的模型文件中定义包含外键字段的模型。例如,我们有一个模型叫做 Book ,其中包含一个外键字段 author ,关联到 Author 模型。
代码语言: txt
复制
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. 创建表格:运行Django的数据库迁移命令,创建数据库表格。
代码语言: txt
复制
python manage.py makemigrations
python manage.py migrate
  1. 创建表单:在Django的表单文件中创建一个表单类,用于在前端显示和处理数据。
代码语言: txt
复制
from django import forms
from .models import Book
class BookForm(forms.ModelForm):
    class Meta:
        model = Book
        fields = ['title', 'author']
  1. 创建视图:在Django的视图文件中创建一个视图函数,用于处理表单的展示和提交。
代码语言: txt
复制
from django.shortcuts import render
from .forms import BookForm
def book_create(request):
    if request.method == 'POST':
        form = BookForm(request.POST)
        if form.is_valid():
            form.save()
            # 处理表单提交成功后的逻辑
    else:
        form = BookForm()
    return render(request, 'book_create.html', {'form': form})
  1. 创建模板:在Django的模板文件中创建一个HTML模板,用于渲染表单和显示外键模型的值。
代码语言: txt
复制
<!-- book_create.html -->
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">保存</button>
</form>

在上述步骤中,我们定义了一个 BookForm 表单类,其中的 author 字段是一个外键字段,它会自动以组合框的形式显示 Author 模型的值。在视图函数 book_create 中,我们将表单传递给模板进行渲染,并在模板中使用 {{ form.as_p }} 来显示表单的字段。

对于Django的外键模型的值显示和选择,腾讯云提供了云服务器(CVM)和云数据库MySQL等产品,可以用于搭建Django应用的服务器和数据库环境。您可以通过以下链接了解更多关于腾讯云的相关产品和服务:

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

相关· 内容

Django 项目知识点(三)

本文一篇完全介绍 django 最重要 model 6. django model 模型 是数据唯一而且准确 信息来源。 包含正在储存 数据 重要字段和行为。一般来说,每一个 模型 都映射一个数据库表。...注意: Django 一个 模型 只允许有一个自增字段,并且该字段必须为主键!...,也可另立主键并将“一”和“多”两表 主键作为关联表 ; 多对多 表,则必须设中间关联表,关联表设独立主键, 引入两个“多”头 主键作为关联表 。...PROTECT:此 设置,是会报完整性错误。 SET_NULL:此 设置,会把 设置为null,前提是允许为null。 SET_DEFAULT:此 设置,会把设置为 默认 。...一般使用CASCADE 表示级联删除 也就是有一个数据其中一个表删了,管聊 表就会删除,想下如果有个学生不读了,删掉了所有学生报名表 数据, 学生,课程,是不是先把 删了,这就是级联删除,如果设置了

1.9K 3 0

Django 3.1 官网学习路线

字段还可以有各种可选参数; 本例 ,我们将投票 默认 设置为 0。 最后,请注意使用 定义了关系。这告诉 Django 每个 选择 都与一个问题相关。...按照惯例, Django 会将"_id"附加到外 字段名。(是的,你也可以重写这个。) 关系是通过 约束来显式 。...不要担心可延期 部分; 告诉 PostgreSQL 事务结束之前不要强制执行 。...更改 ,重新加载页面 检查正确 出现。 通过点击“今天”和“现在”快捷 更改“发布日期”。然后点击“保存 继续编辑”。然后点击右上角 “历史”。...“添加 选择 ”表单如下所示: 该表单 ,“Question”字段是一个 选择 ,包含数据库 每个问题。 Django 知道一个 应该在管理中表示为一个 我们 例子 ,目前只存在一个问题。

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

    二、 模型 定义 模型 可以定义储存数据 字段和 ,比如我们 进行表单提交 时候,一些注册信息就可以利用 模型 来进行管理,然后统一提交到数据库 。简单来说, 模型 是与数据库有关 操作集合。...help_text: 字段 提示信息 choices: 显示 选择 内容,用不变动 数据放在内存 以避免跨表操作 verbose_name: 显示 字段名称 error_messages:自定义错误信息...1.多对一 因为是关联关系,所以我们必须指定两个类来进行相互操作,这里涉及到一个 操作,即ForeignKey字段,而且 要定义 一方。...db_constraint=True # 是否在数据库 创建 约束 parent_link=False # Admin 是否 显示 关联数据 2.多对多 多对多 表...,必须设中间关联表,关联表设独立主键, 引入两个“多”头 主键作为关联表

    2.1K 0 0

    Django 3.2边学边记—Adimn站点管理

    创建 模型 管理类来管理某个 模型 在后台 显示 页面形式 ModelAdmin类可以控制不同 模型 Admin界面 展示方式,主要包括 列表页 展示方式、添加修改页 展示方式 上文中展示了TestAdmin类 一种注册方法...atitle.short_description='标题'   如果是更改 模型 字段 显示 列标题,可以 定义 模型 字段时,设置verbose_name ,或者封装成方法,再对方法使用上面那个属性, 模型 字段不能直接使用那个属性... = 'unknown' 以上通过指定方法属性来控制 显示 是新老版本通用 Django 3.2可以通过给装饰器传参来解决: model.py : 1234567891011121314151617...,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是 模型 字段,包括 字段(注意list_display是不能直接接收 字段 ),会将对应字段 列出来,一般用于快速过滤有重复 字段..., 返回所有包含这些词 对象,不区分大小写(即 icontains 查找:不区分大小写 包含匹配),其中每个词必须在 search_fields 至少有一个。

    1.3K 3 0

    Django ——model基础

    myapp_modelName,是根据 模型 元数据自动生成 ,也可以覆写为别的名称   2、id 字段是自动添加 3、对于 字段, Django 会在字段名上添加"_id" 来创建数据库 列名...6、 字段 ForeignKey 有一个 null=True 设置( 允许 接受空 NULL),你可以赋给它空 None 。...(4)unique 如果该 设置为 True, 这个数据字段 整张表 必须是唯一 (5)choices 由二元组组成 一个可迭代对象(例如,列表或元组),用来给字段提供 选择 项。...如果设置了choices ,默认 表单将是一个 选择 而不是标准 文本 ,而且这个 选择 选项就是choices 选项。... Django 删除对象时,会模仿 SQL 约束 ON DELETE CASCADE 行为,换句话说,删除一个对象时也会删除与它相关联 对象。例如: ?

    1.1K 10 0

    35. Django 2.0文档

    在这个模式 , Model 代表数据存取层,View 代表 是系统中 选择 显示 什么和怎么 显示 部分,Controller 指的是系统 根据用户输入 视需要访问 模型 ,以决定使用哪个视图 那部分。      ...M:数据存取部分,由 django 数据库层处理,本章要讲述 内容。   V: 选择 显示 哪些数据要 显示 以及怎样 显示 部分,由视图和模板处理。   ...默认地,管理工具使用`` 下拉 `` 来展现`` `` 字段。但是,正如`` 多对多字段`` 那样,有时候你不想忍受因装载 显示 这些选项而产生 大量开销。...例如,我们 book数据库膨胀到拥有数千条publishers 记录,以致于book 添加页面装载时间较久,因为 必须把每一个publisher都装载 显示 `` 下拉 `` 。...解决这个问题 办法是使用`` raw_id_fields`` 选项。它是一个包含 字段名称 元组, 包含 字段将被展现成`` 文本 `` ,而不再是`` 下拉 `` 。

    11.3K 10 0

    Django 模型

    Django 模型 Django 模型 定义 models.py文件 模型 是MVT M,也相当于MVC M。 Django 模型 必须继承自Model类。... 这个东西,通常都是在业务逻辑层面来实现 ,而不是在数据库 实现。但是通常大家学习 数据库课程 ,都会有数据库设计范式,其中有个第三范式就是专指 约束。在这里只是简单 介绍一下。...choices参数就是从我们定义 二元组(GENDER_CHOICES) 获取值。二元组 第一个 会储存在数据库 ,而第二个 将只会用于 表单 显示 。... 常用 可以如下: CASCADE级联,删除主表数据时连通一起删除外 数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被 应用 数据 SET_NULL设置为NULL...,此选项会抛出IntegrityError异常 注意:我们在数据库 ,设置 时候需要制定另一张表 关联 字段,但是 Django 里并没有指定。

    1.9K 2 0

    【愚公系列】2022年01月 Python教学课程 40- Django 框架之 模型 属性详解

    文章目录 一、 模型 类定义 二、 模型 类迁移 一、 模型 类定义 models.py 文件 定义 模型 类,示例如下: from django .db import models # Create...站点中 显示 名称 def __str__(self): """定义每个数据对象 显示 信息""" return self.name # 准备人物列表信息 模型 类...若为True,则该字段会成为 模型 主键字段,默认 是False,一般作为AutoField 选项使用 unique 如果为True, 这个字段 必须有唯一 ,默认 是False null是数据库范畴 概念...,blank是表单验证范畴 6) 设置 时,需要通过on_delete选项指明主表删除数据时,对于 引用表数据如何处理, django .db.models 包含了可选常量: CASCADE...级联,删除主表数据时连通一起删除外 数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被 应用 数据 SET_NULL设置为NULL,仅在该字段null=True

    1.4K 2 0

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

    在这个表单 ,Question字段是一个select 选择 ,包含了当前数据库中所有的Question实例。 Django admin站点中,自动地将所有的 关系展示为一个select 。... 我们 例子 ,目前只有一个question对象存在。 请注意图中 绿色加号, 连接到Question 模型 。每一个包含 关系 对象都会有这个绿色加号。...点击 ,会弹出一个新增Question 表单,类似Question自己 添加表单。填入相关信息点击保存后, Django 自动将该Question保存在数据库,并作为当前Choice 关联 对象。...通俗讲就是,新建一个Question并作为当前Choice 。 但是,实话说,这种创建方式 效率不怎么样。...自定义管理站点外观 很明显, 每一个admin页面坐上顶端都 显示 Django 管理”是感觉很荒诞, 仅仅是个占位文本。利用 Django 模板系统,可以易修改

    3.6K 6 0

    06. Django 基础五之 django 模型 层(二)多表操作

    一 创建 模型 表和表之间 关系     一对一、多对一、多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加 约束和不加 约束 区别,一对一 约束是 一对多 约束上加上唯一约束..., 字段建立 一方,字段publish如果是 字段,那么 自动是int类型 publish=models.ForeignKey(to="Publish",to_field="nid",on_delete...注意事项: 表 名称myapp_modelName,是根据 模型 元数据自动生成 ,也可以覆写为别的名称   id 字段是自动添加 对于 字段, Django 会在字段名上添加"_id" 来创建数据库 列名... 字段 ForeignKey 有一个 null=True 设置( 允许 接受空 NULL),你可以赋给它空 None 。   ... 名称是聚合 标识符, 是计算出来 聚合 名称是按照字段和聚合函数 名称自动生成出来 。如果你想要为聚合 指定一个名称,可以向聚合子句提供

    2.7K 2 0

    关于“Python” Django 管理网站 核心知识点整理大全52

    在这里,我们编写了方法__str__(), 返回存储 属性text 字符串(见3)。... 本节 ,我们将建立管理网站, 通过 使用 模型 Topic来添加一些主题。 1. 创建超级用户 Django 允许你创建具备所有权限 用户——超级用户。权限决定了用户可执行 操作。... 是一个数据库术语, 引用了数据库 另一条记录;这些代码将每个条目关联 到特定 主题。每个主题创建时,都给它分配了一个 (或ID)。... 4处,我们 Entry类 嵌套了Meta类。Meta存储用于管理 模型 额外信息,在这里, 让 我们能够设置一个特殊属性,让 Django 需要时使用Entries来表示多个条目。...单击Entries Add链接, 或者单击Entries再 选择 Add entry。你将看到一个下拉列表,让你能够 选择 要为哪个主题创建条目, 还有一个用于输入条目的文本

    163 1 0

    Django 学习_简易博客(二)

    项目:基于某些设置项 Django 安装结果; 应用程序: 模型 ,视图,模版,URL 组合 应用程序和框架进行交互,并提供特定 功能,并可以 不同 项目中加以复用。...='publish') # 作者, # 一个作者可以有多篇帖子 # 当作者被删除,相应 帖子也会被删除 author = models.ForeignKey(User...,choices 选择 STATUS_CHOICES元祖 某一个状态 status = models.CharField(max_length=10,...', # 验证框架 ' django .contrib.contenttypes', # 处理内容类型 ' django .contrib.sessions', # 会话框架...admin 管理站点中添加 模型 blog/admin.py文件下添加 from django .contrib import admin from .models import Post admin.site.register

    632 2 0

    django 后台管理-admin

    0922自我总结 django 后台管理-admin 一. 模型 注册 admin.py 注册方式一: #在对于注册 app admin文件中导入 模型 然后注册 模型 admin.site.register(导入 模型 类...可以 settings.py 设置: LANGUAGE_CODE = 'zh-CN' TIME_ZONE = 'Asia/Shanghai' 1.8版本之后 language code设置不同: LANGUAGE_CODE...#listdisplay设置要 显示 列表 字段(id字段是 Django 模型 默认主键) list_display = ('id', 'caption', 'author', 'publish_time...#list_editable 设置默认可编辑字段 list_editable = ['machine_room_id', 'temperature'] #fk_fields 设置 显示 字段...一般ManyToManyField多对多字段用过滤器;标题等文本字段用搜索 ;日期时间用分层筛选。 过滤器如果是 需要遵循这样 语法:本表字段__ 表要 显示 字段。

    880 1 0

    django orm 重点大全

    1.最简单 跨表,查询 符合主表条件 记录列表 #用户类型表 class User_typ(models.Model): name=models.CharField(max_length=...如果可调用 ,每有新对象被创建 都会被调用。 (3)primary_key 如果为True,那么这个字段就是 模型 主键。...(4)unique 如果该 设置为 True, 这个数据字段 整张表 必须是唯一 (5)choices 由二元组组成 一个可迭代对象(例如,列表或元组),用来给字段提供 选择 项。...如果设置了choices , 默认 表单将是一个 选择 而不是标准 文本 ,而且这个 选择 选项就是choices 选项。... 一个给定 model 类 实例 ,想得到某个 choices 字段 显示 ,就调用 get_FOO_display 方法(这里 FOO 就是 choices 字段 名称 )。

    791 4 0

    Python: Django 框架

    settings.py :该 Django 项目的设置或配置。 查看 理解这个文件 可用 设置类型及其默认 。 urls.py: Django 项目的URL设置。 可视其为你 django 网站 目录。...特别说明: django 2.1之前使用 是url(), 使用 是正则,如果你仍然想使用正则表达式在你 route ,你可以使用re_path(), 用法也path基本完全相同,只是 配置route时,...choices 元组 ,一个用来 选择 2维元组。第一个 是实际存储 ,第二个用来方便进行 选择 。... 显示 标签 initial : 初始 字段 显示 help_text: 字段后面 显示 定义 帮助文档 error_messages : 是一个字典,错误提示信息 show_hidden_initial...unique 是否为唯一 Not null 不能为空 foreign key 指定关键表 mysql> use my_db #使用my_db数据库 Database changed mysql

    4.4K 4 0

    Django 自关联实现多级联动查询实例

    1 问题引出 我们 开发网站 时候可能会遇到这种情况,多个字段之间有一定 关联性,比如省市县, 选择 省,之后下一个 选择 则为该省 市集合, 选择 市之后下一个 选择 为该市 县集合。...一种实现方式是,建立三个 模型 表,用 一对多方式,显然这样是不太合理 Django 提供了自关联 实现, 模型 自身关联,即一条数据关联另一条数据。 本文以省市县为案例介绍其具体实现方法。...2 具体实现 2.1 建立数据表Model model.py 建立数据表 class AdressInfo(models.Model): address = models.CharField(max_length...pid: ,self自关联,这里也可以使用 AdressInfo null:为True表示可以为空,因为省级行政单位没有父级 blank:为True表示admin后台数据写入 时候可以允许为空...,具体实现是通过下拉 改变触动相应函数。

    2.4K 1 0

    Python Django 框架笔记(五): 模型

    在这个模式 , Model 代表数据存取层,View 代表 是系统中 选择 显示 什么和怎么 显示 部分,Controller 指的是系统 根据用户输入 视需要访问 模型 ,以决定使用哪个视图 那部分。...对于 Django ,可以理解为遵循MVC模式: M,数据存取部分,由 django 数据库层处理,即 模型 。 V, 选择 显示 哪些数据要 显示 以及怎样 显示 部分,由视图和模板处理。... MTV开发模式 : M代表 模型 (Model),即数据存取层。 该层处理与数据相关 所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间 关系等。...该层处理与表现相关 决定: 如何在页面或其他类型文档中进行 显示 。 V代表视图(View),即业务逻辑层。 该层包含存取 模型 及调取恰当模板 相关逻辑。 你可以把 看作 模型 与模板之间 桥梁。...很不幸,这是对 MVC 不同诠释所引起 错误认识。 Django 对 MVC 诠释 ,视图用来描述要展现给用户 数据;不是数据 如何展现 ,而且展现 哪些 数据。

    2K 6 0

    用python搭建一个校园维基网站(二)—— 可编辑内容 首页 创建

    我们 WikiHome页面 模型 需要图中红色高亮 一系列字段,其中title字段继承自Page类,不用额外添加,image字段为连接到wagtailimages.Image 模型 。...WikiHomeTopLink类似,为了层次上更清晰,采用了多重继承, models.py 只定义ParentalKey ,而在另一个文件 定义了RelatedLink 模型 ,包含 字段有链接文本和具体链接...,只是具体链接可能为 链、某个页面或某个文档,占用了三个字段,此外还利用@property装饰器为该 模型 添加了link属性,来返回 具体链接,这样 模板中就可以使用.link调用。...对于模板来说,它对应 页面 模型 处于 上下文环境, 模板 可以调用到该页面 模型 所有元素(使用 Django 模板语言)。我们要按照页面排版将元素填充进去。...如下图创建 保存,Root Page 选择 新创建 页面。 最终,访问http://127.0.0.1:8000/ 便可以看到页面效果。 ?

    3.6K 8 0

    37. Django 1.11.6文档

    如果设置了choices ,默认 表单将是一个 选择 而不是标准 文本 ,而且这个 选择 选项就是choices 选项。...它会生成一个复杂 查询 引起性能 损耗,但是 以后使用 关系时将不需要数据库查询。...with widget=subwidget %} {% endfor %} 下面示例 Widget 继承MultiWidget 以 不同 选择 显示 年、月、日。 ...raw_id_fields Widget 字段旁边 显示 一个放大镜按钮,允许用户搜索 选择 一个 ︰ ?...如果 模型 相应字段有 选择 集,则提供给表单 选项必须是这些 选择 有效子集,否则, 保存 模型 本身之前验证 模型 本身时,表单提交将失败 显示 ValidationError 。

    24.3K 8 0