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

如何在管理表单中显示模型的外键字段

在管理表单中显示模型的外键字段,可以通过以下步骤实现:

  1. 首先,确保你的模型中定义了外键字段,并且已经在数据库中创建了相应的关联关系。
  2. 在你的表单类中,使用ModelChoiceFieldModelMultipleChoiceField来表示外键字段。这些字段会自动为你生成一个下拉列表或多选框,用于选择关联的对象。
  3. 在表单的__init__方法中,通过queryset参数指定外键字段的可选对象。你可以使用模型的objects属性来获取所有的关联对象,或者使用过滤条件来获取特定的对象。
  4. 在模板中,使用表单对象的{{ form }}标签来渲染表单。这将自动生成一个包含外键字段的下拉列表或多选框。

下面是一个示例代码,演示了如何在管理表单中显示模型的外键字段:

代码语言:txt
复制
# models.py
from django.db import models

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

    def __str__(self):
        return self.name

class Product(models.Model):
    name = models.CharField(max_length=100)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

    def __str__(self):
        return self.name

# forms.py
from django import forms
from .models import Product

class ProductForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['category'].queryset = Category.objects.all()

    class Meta:
        model = Product
        fields = '__all__'

# admin.py
from django.contrib import admin
from .models import Product
from .forms import ProductForm

class ProductAdmin(admin.ModelAdmin):
    form = ProductForm

admin.site.register(Product, ProductAdmin)

在上述示例中,我们定义了两个模型:CategoryProduct,它们之间通过外键字段category建立了关联。然后,我们创建了一个ProductForm表单类,使用ModelChoiceField来表示外键字段category。在表单的__init__方法中,我们将category字段的可选对象设置为所有的Category对象。最后,在ProductAdmin中使用ProductForm来渲染管理表单。

这样,当你在管理后台创建或编辑Product对象时,会显示一个下拉列表,用于选择关联的Category对象。

腾讯云相关产品推荐:

  • 云服务器(CVM):提供弹性计算能力,满足各类业务需求。产品介绍链接
  • 云数据库 MySQL 版(CDB):提供高性能、可扩展的关系型数据库服务。产品介绍链接
  • 云存储(COS):提供安全、稳定、低成本的对象存储服务。产品介绍链接
  • 人工智能机器翻译(TMT):提供高质量、多语种的机器翻译服务。产品介绍链接
  • 物联网通信(IoT):提供全面的物联网设备接入、数据采集和管理服务。产品介绍链接
  • 腾讯云区块链服务(TBC):提供高性能、安全可信赖的区块链服务。产品介绍链接
  • 腾讯云游戏多媒体引擎(GME):提供游戏语音、游戏音效等多媒体处理服务。产品介绍链接
  • 腾讯云音视频处理(VOD):提供音视频上传、转码、剪辑、播放等服务。产品介绍链接
  • 腾讯云云原生容器服务(TKE):提供高度可扩展的容器化应用管理平台。产品介绍链接

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估。

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

相关·内容

Django学习-第七讲:django 常用字段字段属性,和表关系、操作

和表关系 在MySQL,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用是InnoDB引擎,是支持约束存在使得ORM框架在处理表关系时候异常强大。...第一个参数是引用是哪个模型,第二个参数是在使用引用模型数据被删除了,这个字段该如何处理,比如有CASCADE、SET_NULL等。这里以一个实际案例来说明。...如果一个模型使用了。...即只要这条数据引用了那条数据,那么就不能删除外那条数据。 3.SET_NULL:设置为空。如果那条数据被删除了,那么在本条数据上就将这个字段设置为空。...如果设置这个选项,前提是要指定这个字段一个默认值。 5.SET():如果那条数据被删除了。那么将会获取SET函数值来作为这个值。

3.9K30

Django基表创建、字段属性简介、脏数据概念、子序列化

Django基表设置 通过图书管理系统引入多表操作:如果我们创建表方式是先抽象出表与表之间相同字段建一个父类,然后在用每个表类去继承这个父类,如下面的代码,我们将无法得到期望字段。...db_table = 'xxx'指定该类数据库表单名字。当然如果不指定也没关系,Django会自动默认按照一定规则生成数据模型对应数据库表名。...两张表建立了一对一字段在A表,那么先往B表写数据就更合理。...假设图书管理系统书、出版社、作者、作者详细信息四张表之间关系如下: """ 表关系 1)Book 和 Publish 一对多:在多一方 Book 2)Book 和 Author 多对多:在查询频率高一方...更合理) """ Django orm中外字段属性详解 在建表之前我们对外字段属性进行了解: 1)related_name在外设置反向查询字段名:正向找字段名,反向找related_name

4.3K30

低代码系列之代码生成器模型配置--fields

fields是代码生成器最核心一个属性,它决定了数据表字段字段对应表单属性 fields是一个对象类型,该对象里面的属性就是模型字段 fields: { couponName...tableHidden 否 boolean 字段是否不在表格显示 值取true表示该字段不会在管理界面的基础表格展示 meta 否 object 字段界面属性(表单/表格) 当没指定该属性时默认取...,也就是要单独建表 这个时候你应该先创建分类模型,配置相关属性 然后在文章模型设置属性,属性foreign与fields同级 并没有在本节,这里只做简单介绍 1.设置属性 foreign...: { // key 表示键名称 article_category: { key: 'category_id', // 当前模型字段...展示 onTable: 'user', // 关联模型 foreignDesc: '描述' }, } 2.配置字段属性 fields

75320

Django模型

这个东西,通常都是在业务逻辑层面来实现,而不是在数据库实现。但是通常大家学习数据库课程,都会有数据库设计范式,其中有个第三范式就是专指约束。在这里只是简单介绍一下。...下面是另外一个模型,和前面的BookInfo模型通过关联起来。...choices参数就是从我们定义二元组(GENDER_CHOICES)获取值。二元组第一个值会储存在数据库,而第二个值将只会用于在表单显示。...:通过使用models.ForeignKey来设置,ForeignKey第一个参数是要关联模型类名,第二个参数是on_delete。...,此选项会抛出IntegrityError异常 注意:我们在数据库,设置时候需要制定另一张表关联字段,但是在Django里并没有指定。

1.9K20

WebGenerate 产品介绍

模型扩展主要使用缓存,减少了与数据库交互次数、以及复杂SQL使用。 3)专项技术(组件池),主要由用户自行开发,我们也会提供与工程配套简单专项技术,加密、解密等。...“新增字段管理”界面如下图: 图九 名称:用于显示页面元素title; 编码:生产代码使用; 注释:用于model类 数据类型:字段类型,生产model时,会生产对应类型; 长度:字段类型长度;...小数位数:小数位数; 允许空:字段是否允许空; 默认值:字段类型默认值; 主键:该字段是否为主键; 隶属项目:隶属于哪个项目; 隶属表:隶属于哪个表; 表:对应表,用于在controller...prop函数进行属性拓展使用; 字段:对应表需要显示字段,用于在controllerprop函数进行属性拓展使用; 列表显示:是否在列表显示表单显示:是否在表单显示表单必填:...用于生产页面元素是否为必填项; 提示显示:页面错误提示信息; HTML元素:页面显示HTML元素类型; 排序:字段显示顺序; 4.工程介绍 WebGenerate生产代码适用于SSM+Maven

1.2K70

Django模型最佳实践

,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices 设定字段选项,各元组第一个值是设置在模型值,第二值是人类可读值 db_column...default 字段默认值 editable 字段在后台模型管理或ModelForm是否显示,默认为True error_messages 设定字段抛出异常时默认消息字典,其中包括null...、blank、invalid、invalid_choice、unique和unique_for_date help_text 表单小组件旁边显示额外帮助文本。...unique 设置为True时,表字段值必须是唯一 verbose_name 字段在后台模型管理显示名称,未指定时使用字段名称 ForeignKey属性 limit_choices_to:值是一个...on_delete:关联对象被删除时对应动作,可取值包括django.db.models定义: CASCADE:级联删除。

2.2K40

pageadmin CMS网站制作教程:实例:如何制作一个报名表?

,在数据类型,我们选择日期,文本输入框长度我们设置为10,然后在基础属性中选择,该字段是否为必填项,如是则勾选,否则不操作,点击提交,字段就创建好了; 7.3 在创建字段时候,我们需要注意该字段表单类型选择...,有些字段表单类型或者数据类型并不是一样性别,我们可以选择单选框,数据类型则选择文本类型,民族、电话、地址我们在数据类型选择时候就可以选择文本类型; 8.字段添加完了,我们这个是报名表,便于查看...9.6 下一步在文件添加代码,点击顶部导航系统,在点击左侧导航信息表; 9.7 在信息表中找到新建信息表,点击表单Html,进入到表单页面, 9.8 使用快捷ctrl+A(全选),快捷...,点击报名专栏; 可以看到报名表,但有些显示不完全,这就需要改div和css了 10.5 回到报名模型页面,在后台点击顶部导航网站,再点击左侧导航模板管理,再点击views,找到报名专栏,点击新建模型编辑...,进入到HTML编辑页面, 10.6 因为在前台页面显示是全页面的表单,为了和其他页面宽度保持一致,我们需要给表单模型增加一个外层,在代码最顶部加上,代码最底部加上</div

2.5K30

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

现在先来试试重新排序表单字段。...在这个表单,Question字段是一个select选择框,包含了当前数据库中所有的Question实例。Django在admin站点中,自动地将所有的关系展示为一个select框。...在我们例子,目前只有一个question对象存在。 请注意图中绿色加号,它连接到Question模型。每一个包含关系对象都会有这个绿色加号。...点击它,会弹出一个新增Question表单,类似Question自己添加表单。填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice关联对象。...通俗讲就是,新建一个Question并作为当前Choice。 但是,实话说,这种创建方式效率不怎么样。

3.6K60

Django 3.1 官网学习路线

字段还可以有各种可选参数;在本例,我们将投票默认值设置为 0。 最后,请注意使用定义了关系。这告诉 Django 每个选择都与一个问题相关。...按照惯例,Django 会将"_id"附加到外字段名。(是的,你也可以重写这个。) 关系是通过约束来显式。...不同模型字段类型(DateTimeField、CharField)对应于适当 HTML 输入小部件。每种类型字段都知道如何在 Django 管理显示自己。...通常,您需要定制管理表单外观和工作方式。可以通过在注册对象时告诉 Django 所需选项来实现。 通过重新排列编辑表单字段来了解其工作原理。...“添加选择”表单如下所示: 在该表单,“Question”字段是一个选择框,包含数据库每个问题。Django 知道一个应该在管理中表示为一个框。在我们例子,目前只存在一个问题。

8.2K10

django 模型计算字段实例

verbose_name='姓') given_name = models.CharField(max_length=20, verbose_name='名') def name(self): # 计算字段显示在修改页面只能定义在只读字段...(app.PersonAdmin),第二个是这个类管理模型实例(Person) return '%s,%s' % (self.family_name, self.given_name)...(Person, PersonAdmin) 补充知识:django如何在 search_fields 包含字段 在search_fields中加入一个名字是不能查询,要写成(键名__字段名...)形式. search_fields = ('attributename','goodsclass__cn') # goodsclass__cn 就可以搜索名字中有搜索词条目了, # 比如搜索手机分辨率...,而不是电脑分辨率,就可以搜索'手机 分辨率' 以上这篇django 模型计算字段实例就是小编分享给大家全部内容了,希望能给大家一个参考。

4.4K20

低代码系列之代码生成器模型配置--filter

键名就是字段名 label:为提示文字 type:为表单类型 分类查询 本地分类查询 本地分类意思是分类是写死并没有纳入系统管理 filters: { person: {...分类查询 分类查询意思是,分类项并不是写死,分类项是一张单独表,或者有单独管理作用 这个时候要想正常使用分类查询你需要进行如下配置 以goods模型person字段为例 首先创建一个分类表...article_category: { key: 'person', // 当前模型字段 refer: '...id', // 关联表字段 // 用作表单,表格取值 referLabel: 'name', // 关联表用于展示字段,主要用于 table,form展示...onTable: 'category', // 关联模型 foreignDesc: '描述' }, } } 日期时间查询 单日期查询 指定日期字段查询

40820

Django model 层之Models与Mysql数据库小结

field值为当前日期时间,所以,即便显示为该字段提供了值,也会自动忽视显示 该field对应默认表单组件为:TextInput。...删除被参照表某条表记录,同时级联删除参照表,同待删除记录存在外关联关系记录。 PROTECT 删除被参照表某条表记录,如果参照表,存在与该记录有关系记录,则不让删除。...SET_NULL 删除被参照表某条表记录,设置参照表,同待删除记录存在外关联记录列值为null。当且仅当设置了null=True选项时可用。...SET_DEFAULT 删除被参照表某条表记录,设置参照表,同待删除记录存在外关联记录列值为默认值。必须为列设置默认值。...SET() 删除被参照表某条表记录,设置参照表,同待删除记录存在外关联关系记录列值为传递给SET()参数值,如果传递给SET()参数值是可调用对象,则设置为调用可调用对象获取结果。

2.2K20

Django 学习笔记之模型高级用法(上)

而细节用法往往体现在一些差别用法,难以理解知识点上。 1 复杂字段类型 经过前面的学习,我们知道模型字段类型一方面是指定数据库表列名称和数据类型,另一方面决定 HTML 表单标签类型。...1.5 FileField 上传文件字段,常见于表单。一般而言,文件都是保存在服务器硬盘。...2.1 ForeignKey 1) on_delete 在 Django 2.0 ,设置时需要添加一个 on_delete选项。本身涉及到两个表数据,况且在数据库是有约束行为。...SET_DEFAULT: 置默认值,删除时候,字段设置为默认值,所以定义时候注意加上一个默认值。 SET(): 自定义对应实体值。...4) related_name 用于关联对象反向引用模型名称。主要用于反向查询,即模型实例通过管理器返回第一个模型所有实例。

2K30

35.Django2.0文档

该层处理与表现相关决定: 如何在页面或其他类型文档中进行显示。   V:代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板相关逻辑。 你可以把它看作模型与模板之间桥梁。  ...3.设置字段可选  你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,然而在有些情况下,你想要某些字段是可选。 举个例子,我们想要Author模块email字段成为可选,即允许不填。...首先,我们先自定义字段顺序。 默认地,表单字段顺序是与模块定义是一致。...filter_horizontal和filter_vertical选项只能用在多对多字段上, 而不能用于ForeignKey字段。 默认地,管理工具使用`` 下拉框`` 来展现`` `` 字段。...解决这个问题办法是使用`` raw_id_fields`` 选项。它是一个包含字段名称元组,它包含字段将被展现成`` 文本框`` ,而不再是`` 下拉框`` 。

11.3K100

PowerDesigner 常用方法(转)

修改命名规则 选择Database—>Edit Current DBMS 选择Scripts-》Objects-》Reference-》ConstName 可以发现右侧Value为: FK...添加 Model -> References新建一条后,双击进入属性,在“Joins”卡片中可以选择子表字段 如何实现Name和code不自动相等 如何实现在CDM创建Entity...2 如何在PowerDesigner 下建自增列 3 如何在PowerDesigner 下检查设计模型   1 如何在PowerDesigner下建索引   1 双击表设计图,出来Table Properties...使用SqlServer 数据库下列语句来完成 建表语句中,在要做为自增列字段,加上如下 IDENTITY(1,1) 还有可以使用下面语句,重置自增种子 dbcc checkident(ConfigSys...,reseed,0);   3 如何在PowerDesigner 下检查设计模型   1 在菜单栏中选择 Tools - Check Model, 如下图   2 选择要检查每项设置   3 确定后

1K30

37.Django1.11.6文档

方法允许覆盖字段默认窗体字段。 ...这是必需。 InlineModelAdmin.fk_name 模型名称。 在大多数情况下,这将自动处理,但如果同一父模型有多个,则必须显式指定fk_name。...覆盖此方法以编程方式确定最小内联表单数。 例如,这可以基于模型实例(作为关键字参数obj传递)。 使用具有两个或多个模型与同一个父模型 有时可能有多个到同一个模型。 ...Django在定义关系(在这种情况下,Group)模型显示多对多字段管理窗口小部件。 ...这是因为,就管理而言,through只是一个具有两个字段而不是多对多关系模型。 在所有其他方面,InlineModelAdmin与任何其他方面完全相同。

24.3K80

ASP.NET MVC5高级编程——(3)MVC模式模型

模型一般有:面向业务模型对象和面向视图模型对象。 2 什么是主键属性,什么是属性?...首先数据库主外定义: 主键 定义: 唯一标识一条记录,不能有重复,不允许为空 表是另一表主键, 可以有重复, 可以是空值 作用: 用来保证数据完整性 用来和其他表建立联系用...而称ArtistID属性为属性(foreign key),因为与模型对应数据库,专辑表(Album)和艺术家(Artist)表存在对应关系,即ArtistID是Album表!...简单来说,模型绑定作用:自动从视图Form集合提取网页属性值,比如name属性,然后存储到模型类(Album),也就是说,当模型绑定器读取到Album具有Name属性时候,自动在请求寻找名为...在ASP.NET MVC可以通过使用Bind属性限制可被更新Model属性。绑定多个字段部分字段:通过Bind属性来定义Model需要绑定哪些字段

4.7K40

第一季 | serializers 还有哪些操作没试过

Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图)编写,Template(模板)设计和Form(表单)使用。 ? ?...如何在 serializers 获取登录用户? 采用上下文 ? ?...在 views 视图中使用 mixins 时,post 请求 create 方法,patch 请求 update 方法,都会在对应 mixins 特定类执行 serializer.save()。...再来看下第一季都有哪些可以回顾和用得上小技能 ? 验证 1. Validation自定义验证逻辑 只能验证一个字段 ? 2....ModelSerializer 自动产生基于模型 fields 自动产生验证器,比如 unique_together 验证器 默认包含 create 和 update 方法,被映射为 PrimaryKeyRelatedField

1.2K20

后端框架学习-Django

重写,则按照重写效果显示 注意: 模板继承时,服务器动态内容无法继承 url反向解析 代码url位置: 1.模板 超链接 form表单 form action 将表单数据用...verbose_name:设置此字段在admin界面上显示名称,可以中文化admin界面 好习惯:字段选项【添加或更改】均要执行 模型类-Meta内部类 使用Meta类来给**模型(其实就是表属性)...创建一对一数据 无模型类,和之前相同 有模型类: wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例...)) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑值)) 一对一查询 正向查询:从查对象 反向查询:从对象查 调用反向属性查询到关联一方...无模型类,和之前相同 有模型类: 类似上面 wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例)

9.4K40
领券