我已经在http://docs.djangoproject.com上学习了民意测验教程。我想知道在编辑民意调查时,是否可以在“选择”模型中加入排序次序。如果可以,我应如何做到?
ygya80vv1#
class SeminarInline(admin.StackedInline): model = Seminar extra = 0 ordering = ('-date',)
为我工作(以上改编自我的模型)它按日期降序排列
q7solyqu2#
还可以覆盖ModelAdmin的get_ordering(self, request),这允许不区分大小写的排序:
ModelAdmin
get_ordering(self, request)
from django.db.models.functions import Lower class MyModelAdmin(ModelAdmin): list_display = ('name',) search_fields = ['name'] def get_ordering(self, request): return [Lower('name')] # sort case insensitive
8iwquhpp3#
你可以在Django模型中添加Meta选项来决定它的行为,其中有一个ordering选项定义了模型属性记录应该被排序的方式。你可以在Django文档中找到 meta排序选项的文档:
Meta
ordering
u3r8eeie4#
以下是根据4.0文档的方法
# mymodel/admin.py from django.contrib import admin from . import models # admin.site.register(models.MyModel) @admin.register(models.MyModel) class MyModelAdmin(admin.ModelAdmin): ordering = ['-last_name']
此处,last_name是MyModel中的字段。
9jyewag05#
例如,如果希望表格按百分比排序:1.转到models.py主应用程序中的www.example.com文件1.
class Meta: abstract = True ordering = ['-percentage'] #Sort in desc order
class Meta: abstract = True ordering = ['percentage'] #Sort in asc order
zbsbpyhn6#
如果你想在InlineAdmin中定义一个命令,django并没有提供一个通用的解决方案!有some snippets out there可以让你在管理中添加这个功能,grapelli皮肤也提供了这样的功能!
wsewodh27#
是的,您可以在ModelAdmin中添加订单。这与您的www.example.com订单是分开models.py的。
7条答案
按热度按时间ygya80vv1#
为我工作(以上改编自我的模型)它按日期降序排列
q7solyqu2#
还可以覆盖
ModelAdmin
的get_ordering(self, request)
,这允许不区分大小写的排序:8iwquhpp3#
你可以在Django模型中添加
Meta
选项来决定它的行为,其中有一个ordering
选项定义了模型属性记录应该被排序的方式。你可以在Django文档中找到 meta排序选项的文档:
u3r8eeie4#
以下是根据4.0文档的方法
此处,last_name是MyModel中的字段。
9jyewag05#
例如,如果希望表格按百分比排序:
1.转到models.py主应用程序中的www.example.com文件
1.
zbsbpyhn6#
如果你想在InlineAdmin中定义一个命令,django并没有提供一个通用的解决方案!有some snippets out there可以让你在管理中添加这个功能,grapelli皮肤也提供了这样的功能!
wsewodh27#
是的,您可以在ModelAdmin中添加订单。这与您的www.example.com订单是分开models.py的。