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

在Django Admin changelist视图中,如何使外键列按主键以外的值排序?

在Django Admin changelist视图中,要使外键列按主键以外的值排序,可以通过自定义模型Admin类的list_display属性来实现。

首先,需要在admin.py文件中导入相关模型和Admin类:

代码语言:txt
复制
from django.contrib import admin
from .models import YourModel

class YourModelAdmin(admin.ModelAdmin):
    list_display = ('id', 'foreign_key_field', 'other_field', ...)  # 按照需要显示的字段顺序设置

admin.site.register(YourModel, YourModelAdmin)

在list_display属性中,按照需要显示的字段顺序设置,其中'foreign_key_field'是外键字段的名称。默认情况下,外键字段会按照外键的主键值进行排序。如果想要按照外键的其他字段进行排序,可以使用双下划线(__)来指定外键的相关字段。

例如,如果外键字段是一个关联到RelatedModel的外键,可以使用'foreign_key_field__related_field'来指定外键的相关字段。在这里,'related_field'是RelatedModel中的一个字段。

示例代码如下:

代码语言:txt
复制
from django.contrib import admin
from .models import YourModel

class YourModelAdmin(admin.ModelAdmin):
    list_display = ('id', 'foreign_key_field__related_field', 'other_field', ...)  # 按照需要显示的字段顺序设置

admin.site.register(YourModel, YourModelAdmin)

这样设置后,外键列将按照指定的外键的相关字段进行排序。

对于Django Admin changelist视图中的其他需求,可以通过自定义模型Admin类的其他属性和方法来实现,例如list_filter、search_fields、actions等。

注意:以上答案中没有提及腾讯云相关产品和产品介绍链接地址,因为该问题与云计算品牌商无关。如有其他问题需要解答,请提供具体内容。

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

相关·内容

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

字段属性primary_key用于设置主键,max_length用来设置字段最大长度,db_column用来设置数据库中与字段对应,verbose_name则设置了Django后台管理系统中该字段显示名称...使用ORM完成模型CRUD操作 了解了Django提供模型管理平台之后,我们来看看如何从代码层面完成对模型CRUD(Create / Read / Update / Delete)操作。...db_constraint:是否为创建约束,默认为True。...on_delete:关联对象被删除时对应动作,可取包括django.db.models中定义: CASCADE:级联删除。...SET_DEFAULT:把设置为默认,提供了默认才能这么做。 ManyToManyField属性 symmetrical:是否建立对称多对多关系。

2.3K30
  • Django教程 —— 模型类详解

    引言 之前 Django模型设计 中简单介绍了如何定义模型类,在这篇中将做一个汇总。让大家更加了解Django模型类。...: 当前选择数据库支持字段类型 渲染管理表单时使用默认html控件 管理站点最低限度验证 Django 会为表创建自动增长主键,每个模型只能有一个主键,如果使用选项设置某属性为主键后...Django 不会再创建自动增长主键。...primary_key 若为True,则该字段会成为模型主键字段,默认是False。 unique 如果为True, 这个字段表中必须有唯一,默认是False。...editable bool 类型,Admin里是否可编辑, help_text Admin 中提示帮助信息 upload_to 指文件上传到哪个位置 null 是数据库范畴概念,blank 是表单验证范畴

    1.7K20

    Django模型

    django会为表创建自动增长主键,每个模型只能有一个主键,如果使用选项设置某属性为主键django不会再创建自动增长主键。...默认创建主键属性为id,也可以使用pk,意为primary key. 字段名称中不能出现双下划线,因为这是Django查询语法之一。...’,Django3.2之前,默认生成主键数据类型是AutoField.... 这个东西,通常都是在业务逻辑层面来实现,而不是在数据库中实现。但是通常大家学习数据库课程中,都会有数据库设计范式,其中有个第三范式就是专指约束。在这里只是简单介绍一下。...,此选项会抛出IntegrityError异常 注意:我们在数据库中,设置时候需要制定另一张表中关联字段,但是Django里并没有指定。

    1.9K20

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

    Djangoadmin站点中,自动地将所有的关系展示为一个select框。我们例子中,目前只有一个question对象存在。 请注意图中绿色加号,它连接到Question模型。...每一个包含关系对象都会有这个绿色加号。点击它,会弹出一个新增Question表单,类似Question自己添加表单。...填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice关联对象。通俗讲就是,新建一个Question并作为当前Choice。...如果我们想要同时显示一些别的内容,可以使用list_display属性,它是一个由多个字段组成元组,其中每一个字段都会顺序显示页面上,代码如下: # polls/admin.py class...你可以点击其中一表头来让列表按照这来进行排序,但是was_published_recently这表头不行,因为Django不支持按照随便一个方法输出进行排序

    3.6K60

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

    2) 关于主键 django会为表创建自动增长主键,每个模型只能有一个主键,如果使用选项设置某属性为主键django不会再创建自动增长主键。...默认创建主键属性为id,可以使用pk代替,pk全拼为primary key。 3) 属性命名限制 不能是python保留关键字。 不允许使用连续下划线,这是由django查询方式决定。...若为True,则该字段会成为模型主键字段,默认是False,一般作为AutoField选项使用 unique 如果为True, 这个字段表中必须有唯一,默认是False null是数据库范畴概念...,blank是表单验证范畴 6) 设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理,django.db.models中包含了可选常量: CASCADE...级联,删除主表数据时连通一起删除外表中数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被应用数据 SET_NULL设置为NULL,仅在该字段null=True

    1.4K20

    Django之ORM字段和参数

    ---- BooleanField    布尔类型,储存布尔,True或者False ---- EmailField         字符串类型,Django Admin以及ModelForm中提供验证机制...类型ORM中用来表示关联关系,一般把ForeignKey字段设置 '一对多'中'多'一方。    ...,设置:models.SET() 与之关联设置为可执行对象返回,设置:models.SET(可执行对象) ---- db_constraint    是否在数据库中创建约束,默认为True...---- through      使用ManyToManyField字段时,Django将自动生成一张表来管理多对多关联关系。...---- ordering     指定默认什么字段排序。     只有设置了该属性,我们查询到结果才可以被reverse()。

    2.3K60

    DjangoAutoField字段使用

    Django是一个机智框架】 默认情况下Djang会为ORM中定义每一张表加上一个自增ID,并且用这个来做主键;出于一个MySQL-DBA工作经历我觉得 Djanog还真是机智;这样么说主要是因为我遇到过许多主从延时问题...(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 【注意】 如果你想工增加AutoField,但是又不指定这个做为主键的话,是会报错 class TestModel...:删除关联数据: a、与之关联设置为指定,设置:models.SET() b、与之关联设置为可执行对象返回,设置:models.SET(可执行对象) 5、db_constraint:是否在数据库中创建约束...,默认为True,db_constraint一般使用在建立数据表连接关系当中(例如创建),如果使用False,则是限制了表之间没有关联,达到了软连接效果 五、元信息 ORM对应类里面包含另一个Meta...给两做索引 3、unique_together:联合唯一索引,两不能重复 4、ordering:指定默认什么字段顺序,只有设置了该属性,我们查询到结果才可以被reverse() 具体介绍可以查看

    6.5K20

    django_mysql_配置

    verbose_name='逻辑删除') class Meta: db_table = 'tb_books' # 指明数据库表名 verbose_name = '图书' # admin...2) django会为表创建自动增长主键,每个模型只能有一个主键,如果使用选项设置某属性为主键django不会再创建自动增长主键。...默认创建主键属性为id,可以使用pk代替,pk全拼为primary key。 3) 字段类型 ? 4) 选项 ?...null是数据库范畴概念,blank是表单验证范畴 5) 一般我用CASCADE 设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理,django.db.models...中包含了可选常量: CASCADE 级联,删除主表数据时连通一起删除外表中数据 PROTECT 保护,通过抛出ProtectedError异常,来阻止删除主表中被应用数据 SET_NULL

    1.6K10

    Mysql基础

    select name from ExamResult where Database is null; -- (4)Order by 指定排序排序即可是表中列名,也可以是select 语句后指定别名...id INT PRIMARY KEY auto_increment, name VARCHAR (20), charger_id TINYINT, --切记:作为一定要和关联主键数据类型保持一致...语句 --约束对子表含义: 如果在父表中找不到候选,则不允许子表上进行insert/update --约束对父表含义: 父表上进行update/delete以更新或删除子表中有一条或多条对...-- 应匹配行候选时,父表行为取决于:定义子表时指定 -- on update/on delete子句...update/delete记录时,将子表上匹配记录设为null -- 要注意子表不能为not null FOREIGN KEY (charger_id) REFERENCES

    4.2K20

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

    控制显示Django 会尝试按照这个顺序解释 list_display 每个元素: 一个模型字段。 一个可调用对象。 一个代表 ModelAdmin 属性字符串。...def atitle(self):        return self.title 以上方法显示是不能排序,如果让这个方法显示也能排序,就给atitle方法.admin_order_field...atitle.short_description='标题'   如果是更改模型字段显示标题,可以定义模型字段时,设置verbose_name ,或者封装成方法,再对方法使用上面那个属性,模型字段不能直接使用那个属性...过滤器 用 list_filter 来激活管理更改列表页面右侧侧栏过滤器,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括字段(注意list_display...是不能直接接收字段),会将对应字段列出来,一般用于快速过滤有重复字段。

    1.3K30

    Django—入门

    1.定义模型类 模型类定义models.py文件中,继承自models.Model类。   说明:不需要定义主键,在生成时会自动添加,并且为自动增长。...同时我们发现多了一个id项,这一项是Django框架帮我们自动生成创建表时候id就会作为对应表主键,并且主键自动增长。...我们之后迁移生成表时候,Django框架就会自动帮我们图书表和英雄表之间建立一个关系。 最后我们可以看到数据库中生成英雄表如下图: ?...注意上图中booktest_heroinfo表中有一hbook_id,这一名为什么不叫hbook? hbook_id是根据HeroInfo类关系属性hbook生成,对应着图书表中主键id。...上去 6.模板 如何向请求者返回一个漂亮页面呢? 肯定需要用到html、css,如果想要更炫效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为HttpResponse()参数吗?

    1.9K10

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

    如果修改某个已存在对象,主键,并保存该对象,会在旧对象基础上,重新构建一个对象。...myapp_album.artist引用mapp_musician.auto_id字段,即mapp_musician.auto_id为myapp_album表。...SET_NULL 删除被参照表某条表记录,设置参照表中,同待删除记录存在外关联记录为null。当且仅当设置了null=True选项时可用。...SET_DEFAULT 删除被参照表某条表记录,设置参照表中,同待删除记录存在外关联记录为默认。必须为设置默认。...SET() 删除被参照表某条表记录,设置参照表中,同待删除记录存在外关联关系记录为传递给SET()参数值,如果传递给SET()参数值是可调用对象,则设置为调用可调用对象获取结果。

    2.2K20

    django models.py(python和django)

    verbose_name='描述信息') brand = models.ForeignKey(Brand, on_delete=models.CASCADE, verbose_name='品牌') # ...admin.site.register(Brand) admin.site.register(Goods) 1) 数据库表名 模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名...2) 关于主键 django会为表创建自动增长主键,每个模型只能有一个主键,如果使用选项设置某属性为主键django不会再创建自动增长主键。...默认创建主键属性为id,可以使用pk代替,pk全拼为primary key。...聚合函数包括:Avg平均,Count数量,Max最大,Min最小,Sum求和 例如:查询所有商品总数量 2.8mysql中排序 2.9关联查询 回顾一下表与表关系,goods表有 brand

    1.1K10
    领券