Django管理记录的排序顺序

mnowg1ta  于 2023-03-20  发布在  Go
关注(0)|答案(7)|浏览(214)

我已经在http://docs.djangoproject.com上学习了民意测验教程。
我想知道在编辑民意调查时,是否可以在“选择”模型中加入排序次序。如果可以,我应如何做到?

ygya80vv

ygya80vv1#

class SeminarInline(admin.StackedInline):
    model = Seminar
    extra = 0
    ordering = ('-date',)

为我工作(以上改编自我的模型)它按日期降序排列

q7solyqu

q7solyqu2#

还可以覆盖ModelAdminget_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
8iwquhpp

8iwquhpp3#

你可以在Django模型中添加Meta选项来决定它的行为,其中有一个ordering选项定义了模型属性记录应该被排序的方式。
你可以在Django文档中找到 meta排序选项的文档:

u3r8eeie

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_nameMyModel中的字段。

9jyewag0

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
zbsbpyhn

zbsbpyhn6#

如果你想在InlineAdmin中定义一个命令,django并没有提供一个通用的解决方案!有some snippets out there可以让你在管理中添加这个功能,grapelli皮肤也提供了这样的功能!

wsewodh2

wsewodh27#

是的,您可以在ModelAdmin中添加订单。这与您的www.example.com订单是分开models.py的。

相关问题