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

如何在模型中创建ForeignKey字段,在管理视图中显示文本名称而不是URL?

在模型中创建ForeignKey字段,可以使用Django框架提供的ForeignKey字段来实现。ForeignKey字段用于在模型之间建立关联关系,表示一个模型与另一个模型之间的一对多关系。

在创建ForeignKey字段时,可以通过设置to参数指定关联的模型,通过设置on_delete参数指定删除关联对象时的行为。例如,以下代码演示了如何在模型中创建一个ForeignKey字段:

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

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey('Author', on_delete=models.CASCADE)

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

在上述代码中,Book模型与Author模型之间建立了一对多关系,Book模型中的author字段是一个ForeignKey字段,关联到Author模型。当删除Author对象时,与之关联的Book对象也会被删除。

在管理视图中显示文本名称而不是URL,可以通过在模型中定义__str__方法来实现。__str__方法用于返回模型对象的字符串表示,可以在管理视图中显示文本名称。

例如,以下代码演示了如何在Author模型中定义__str__方法,以在管理视图中显示作者的名称:

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

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

    def __str__(self):
        return self.name

在上述代码中,__str__方法返回了作者的名称,这样在管理视图中就会显示作者的名称而不是URL。

推荐的腾讯云相关产品和产品介绍链接地址:

  1. 云服务器(CVM):提供弹性计算能力,支持多种操作系统和应用场景。详情请参考:腾讯云云服务器
  2. 云数据库 MySQL 版(TencentDB for MySQL):提供稳定可靠的云数据库服务,适用于各种规模的应用。详情请参考:腾讯云云数据库 MySQL 版
  3. 人工智能平台(AI Lab):提供丰富的人工智能开发工具和服务,支持图像识别、语音识别、自然语言处理等应用。详情请参考:腾讯云人工智能平台

请注意,以上推荐的产品仅为示例,实际选择产品时应根据具体需求进行评估和选择。

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

相关·内容

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

在这个模式, Model 代表数据存取层,View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统根据用户输入并需要访问模型,以决定使用哪个视图的那部分。... MTV开发模式: M代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。...该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。 V代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。... Django 对 MVC 的诠释,视图用来描述要展现给用户的数据;不是数据 如何展现 ,而且展现 哪些 数据。...相比之下,Ruby on Rails 及一些同类框架提倡控制器负责决定向用户展现哪些数据,视图则仅决定 如何 展现数据,不是展现 哪些 数据。 两种诠释没有哪个更加正确一些。

2K60

Django 3.1 官网学习路线

Django 附带一个工具,它可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码,不是创建目录。...本例,我们仅为 Question.pub_date 定义了一个人类可读的名称。对于此模型的所有其他字段,该字段的机器可读名称将足以作为其人类可读的名称。 一些 Field 类具有必需的参数。...不同的模型字段类型(DateTimeField、CharField)对应于适当的 HTML 输入小部件。每种类型的字段都知道如何在 Django 管理显示自己。...我们的投票应用程序,我们将有以下四个视图: 问题“索引”页面-显示最近的几个问题。 问题“细节”页面-显示一个问题文本,没有结果,但有一个表格来投票。 问题“结果”页面-显示特定问题的结果。...使用表格内联(不是 StackedInline),相关对象将以更紧凑的、基于表格的格式显示: 自定义管理员更改列表 现在问题管理页面看起来不错了,让我们对“更改列表”页面做一些调整——这个页面显示系统的所有问题

8.1K10

django 字段类型_access的数据库类型是

在数据库创建的为varchar列,默认最大长度为100字符。 ImageField.height_field:每次保存模型实例时,模型字段名称都会自动填充图像的高度。...ImageField.width_field:每次保存模型实例时,模型字段名称都会自动填充图像的宽度。 (16) IntegerField 一个整数。...(18) TextField 文本字段。默认表单小部件是Textarea,如果指定max_length属性,将反映在Textarea自动生成的表单字段。...如果需要在尚未定义的模型创建关系,则可以使用模型名称不是模型对象本身。...例如:如果有一个可为空的字段,并且删除引用的对象时将其设置为空, user = models.ForeignKey( ​ User, ​ models.SET_NULL, ​

3.8K30

35.Django2.0文档

在这个模式, Model 代表数据存取层,View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统根据用户输入并需要访问模型,以决定使用哪个视图的那部分。      ...该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。   V:代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。  ...filter_horizontal和filter_vertical选项只能用在多对多字段上, 不能用于ForeignKey字段。 默认地,管理工具使用`` 下拉框`` 来展现`` 外键`` 字段。...它是一个包含外键字段名称的元组,它包含的字段将被展现成`` 文本框`` ,不再是`` 下拉框`` 。...普通的活跃,非超级用户的管理用户可以根据一套设定好的许可进入。 管理界面每种可编辑的对象(:books、authors、publishers)都有三种权限:创建许可,编辑许可和删除许可。

11.3K100

37.Django1.11.6文档

图中使用多个表单集 可以图中使用多个表单集, 表单集从表单借鉴了很多方法 你可以使用 prefix 给每个表单字段添加前缀,以允许多个字段传递给视图,不发生命名冲突 让我们看看可以怎么做 from...情况1和2,backend参数或user.backend属性的值应为点号导入路径字符串(AUTHENTICATION_BACKENDS的字符串),不是实际的类。...ModelAdmin.ordering 设置ordering以指定如何在Django管理图中对对象列表进行排序。 这应该是与模型的ordering参数格式相同的列表或元组。...此属性应设置为每当有人在该文本框中提交搜索查询将搜索的字段名称的列表。 这些字段应该是某种文本字段CharField 或TextField。 ...如果要使用内联模型来表示多对多关系,则必须告知Django的管理不是显示此窗口小部件 - 否则您最终会在管理页面上看到两个窗口小部件,用于管理关系。

24.3K80

Django模型最佳实践

用DecimalField来存储货币相关数据不是FloatField。 定义__str__方法。 不要将数据文件放在同一个目录。...,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices 设定字段的选项,各元组的第一个值是设置模型上的值,第二值是人类可读的值 db_column...字段对应到数据库表的列名,未指定时直接使用字段名称 db_index 设置为True时将在该字段创建索引 db_tablespace 为有索引的字段设置使用的表空间,默认为DEFAULT_INDEX_TABLESPACE...default 字段的默认值 editable 字段在后台模型管理或ModelForm是否显示,默认为True error_messages 设定字段抛出异常时的默认消息的字典,其中的键包括null...unique 设置为True时,表字段的值必须是唯一的 verbose_name 字段在后台模型管理显示名称,未指定时使用字段名称 ForeignKey属性 limit_choices_to:值是一个

2.2K40

00x: Django models.Model详解

若这个给定,默认的表单插件将会变成一个单选框不是简单的文本字段,并且单选框的选项数目由给定的choices来限定。...一个标准的choices列表和下面的形式类似: 每个元组的第一个元素是要存储在数据库的内容。第二个元素用于显示的控件上展示。...若是可调用的对象,它会在每次新对象创建的时候调用。 help_text: 额外的帮助文本用于显示widget上。它对文档的生成很有用。...SQL的一些保留字`join,where,select则是可以model的字段名称中使用的,因为Django每次SQL查询避免了可能发生的冲突。...get_absolute_url(): 该函数告诉Django如何计算一个对象的url。Django admin接口中使用该函数,需要的时候返回对象的url

1.6K20

django 1.8 官方文档翻译: 2-1-1 模型语法(初稿)

如果设置了 choices ,Django 的管理后台就会显示选择框,不是标准的文本框,而且这个选择框的选项就是 choices 的元组。...,是存储在数据库的值;第二个元素是管理界面或 ModelChoiceField 中用作显示的内容。...若是后者,那么每次创建一个新对象时,对象C都将被调用。 help_text 附加的帮助信息。管理后台编辑该对象的表单,它显示字段下面。即使你的对象无须在后台进行管理,它对于文档化也是很有用的。...但是,只要你的字段名称与数据库的列名不同,就可以绕过这些限制。详见 db_column 选项。 SQL 保留字, join, where 和 select, 可以做为 model 字段名称。...get_absolute_url() Django 使用这个方法算出某个对象的网址(URL)。Django 管理后台和任何需要得到对象网址的地方使用该方法。

3.1K30

Python全栈开发之Django基础

对象关系映射,是随着面向对象思想发展产生的,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换,面向对象是从软件工程基本原则(耦合、聚合、封装)的基础上发展起来的,关系数据库则是从数学理论发展而来的...list = BookInfo.objects.all()[0:2] 关联 关系字段类型 ForeignKey:一对多,将字段定义多的一端 ManyToManyField:多对多,将字段定义在任意一端...url时,需要为include定义namespace属性,为url定义name属性,使用时,模板中使用url标签,图中使用reverse函数,根据正则表达式动态生成地址,减轻后期维护成本 No.6...search_fields=[] 中文标题 模型类的字段为其指定verbose_name 分组显示 fieldset=( ('组1标题',{'fields':('字段1','字段2')}),...创建media目录,meida目录下创建应用名称的目录,此为app01 管理页面上传图片 admin中注册该模型类 admin.site.register(Pic)

3.7K20

django 1.8 官方文档翻译:2-1-1 模型语法

如果设置了choices ,默认的表单将是一个选择框不是标准的文本框,而且这个选择框的选项就是choices 的选项。...,是存储在数据库的值;第二个元素是管理界面或 ModelChoiceField 中用作显示的内容。...一个给定的 model 类的实例,想得到某个 choices 字段显示值,就调用 get_FOO_display 方法(这里的 FOO 就是 choices 字段名称 )。...不是将Person模型(或者其它)在所有地方替换为其它你自己创建模型。 基类的限制 代理 模型必须继承自一个非抽象基类。...,不是替换现有的默认管理器,你可以使用自定义管理管理器文档描述的技巧:创建一个含有新的管理器的基类,并且主基类之后继承它: # Create an abstract class for the

4.9K20

完整的 Django 零基础教程|初学者指南 - 第 3 部分 转自:维托尔·弗雷塔斯

然后,特定板内,用户可以通过创建新主题 来开始新的讨论。该主题中,其他用户可以参与讨论发布回复。 我们需要找到一种方法来区分普通用户和管理员用户,因为只有管理员才能创建新的板。...该帖子 车型将拥有一个信息 场,这将是用于存储后答复的文本创建 日期和时间字段主要用来订购帖子 一内主题 ,一个更新的 日期和时间栏通知用户 何时以及是否编辑了给定的帖子 。...它将被翻译成updated by字段。多重性表示0..1,这意味着 更新的字段可能为空(Post未编辑)并且最多只能与一个User相关联。 绘制此类图的另一种方法是强调字段不是模型之间的关系: ?...在这个表示,我们可以更清楚地看到,Post 模型,关联 主题 、创建者 和更新者 成为模型字段。...模型之间创建关系的一种方法是使用 ForeignKey字段。它将在模型之间创建链接并在数据库级别创建适当的关系。该 ForeignKey字段需要一个位置参数,其中包含对其将相关的模型的引用。

2.1K40

Django开发在线教育平台--学习整理(一)

后台管理系统可以切换主题。左侧每一个功能都有列表显示, 增删改查,筛选功能。 课程列表页可以对不同字段进行排序。选择多条记录进行删除操作。...课程列表页:过滤器->选择字段范围等,搜索,导出csv,xml,json。 课程新增页面上传图片,富文本的编辑。时间选择,添加章节,添加课程资源。...当django根目录下找不到app时会去apps中去寻找,但此时pycharm知道这么做,django不知道,所以还要到settings配置。...注意: STATIC_URL的作用是映射静态文件的url,只templates引用的时候用到,其用法与MEDIA_URL相同。...用于table某个字段时,admin后台会显示verbose_name,用于Meta时,显示的是当前数据表的名称

2.9K90

Django模型

Django模型 Django的模型定义models.py文件模型是MVT的M,也相当于MVC的M。 Django模型必须继承自Model类。...站点中显示名称 注意 模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名,一般我们会通过db_table指明数据库表名。...例如可以在上面的name字段指定参数verbose_name=“书籍名称”,那么admin管理页面就会看到书籍名称。...外键 外键这个东西,通常都是在业务逻辑层面来实现的,不是在数据库实现。但是通常大家学习的数据库课程,都会有数据库设计范式,其中有个第三范式就是专指的外键约束。在这里只是简单的介绍一下。...choices参数就是从我们定义的二元组(GENDER_CHOICES)获取值。二元组的第一个值会储存在数据库第二个值将只会用于表单显示

1.9K20

Django—模型

,但通过后台管理页面添加英雄信息时hcomment对应的输入框不能为空 hbook = models.ForeignKey('BookInfo')#英雄与图书表的关系为一对多,所以属性定义英雄模型...属性名称__比较运算符=值 打开booktest/views.py文件,index视图中编写如下查询代码: 条件运算符 1) 查询等 exact:表示判等。 例:查询编号为1的图书。...(queryset) View Code 上去 5.模型类关系 关系字段类型 关系型数据库的关系包括三种类型: ForeignKey:一对多,将字段定义多的一端。...通过对象执行关联查询 定义模型类时,可以指定三种关联关系,最常用的是一对多关系,本例的"图书-英雄"就为一对多关系。...books = BookInfoManager() 2.管理器类定义创建对象的方法 对模型类对应的数据表进行操作时,推荐将这些操作数据表的方法封装起来,放到模型管理器类

6.1K21

【Python全栈100天学习笔记】Day41 Django深入理解框架

字段属性primary_key用于设置主键,max_length用来设置字段的最大长度,db_column用来设置数据库字段对应的列,verbose_name则设置了Django后台管理系统字段显示名称...可能大家已经注意到了,刚才在后台查看部门信息的时候,显示的部门信息并不直观,为此我们再修改admin.py文件,通过注册模型管理类,可以在后台管理系统更好的管理模型。...用DecimalField来存储货币相关数据不是FloatField。 定义__str__方法。 不要将数据文件放在同一个目录。...default 字段的默认值 editable 字段在后台模型管理或ModelForm是否显示,默认为True error_messages 设定字段抛出异常时的默认消息的字典,其中的键包括null...unique 设置为True时,表字段的值必须是唯一的 verbose_name 字段在后台模型管理显示名称,未指定时使用字段名称 ForeignKey属性 limit_choices_to:值是一个

2.2K30

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

二、模型的定义 模型可以定义储存数据的字段和值,比如我们进行表单提交的时候,一些注册信息就可以利用模型来进行管理,然后统一提交到数据库。简单来说,模型是与数据库有关的操作集合。...help_text: 字段的提示信息 choices:显示选择框的内容,用不变动的数据放在内存以避免跨表操作 verbose_name: 显示字段名称 error_messages:自定义错误信息...db_constraint=True # 是否在数据库创建外键约束 parent_link=False # Admin是否显示关联数据 2.多对多 多对多的表...,可以将其它字段放在中介模型,源模型字段使用through参数指向中介模型。...或ModelForm显示关联数据时,提供的条件,字典类型 symmetrical=None # 仅用于多对多自关联时,用于指定内部是否创建反向操作的字段,boolean类型

2.1K00

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

,编辑子表 默认情况下,ModelAdmin只允许您管理模型“本身”字段,不是相关模型.以下方法将实现,应用类的列表管理显示页面,显示父表的字段;在编辑页面,父表对子表进行编辑. models.py...Level与模型名称一样,不是全小写。...models.Model): # 写一个方法,定义管理页面上能够显示的外键字段字段 # grade为Students模型的外检表,level为Grades模型的外检表,那么为Level模型字段...def dis_level(self): return self.grade.level.name # 定义该字段管理后台显示名称 dis_level.short_description...= '年级' # 定义该字段管理后台显示名称 dis_level.short_description = '年级' # 方法列是不能排序的,如果需要排序需要为方法指定排序依据。

1.4K20
领券