Django 管理排序顺序

我已经通过了 http://docs.djangoproject.com的民意测验教程。

我想知道是否有可能添加一个排序顺序的“选择”模型时,编辑一个投票,我将如何实现这一点

谢谢

99421 次浏览

您可以将 Meta选项添加到 Django 模型,该模型可以规定其行为方式。有一个 ordering选项,它定义了模型属性记录的排序方式。

您可以找到元排序选项 在姜戈的文件里的文档:

如果您希望在 InlineAdmin django 中定义订单,那么它不会为您提供这样做的通用解决方案!有 一些片段,使您能够添加这一功能的管理员,也 意大利面皮提供了您这样一个功能!

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

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

也有可能覆盖 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

例如,如果希望按百分比对表进行排序:

  1. 在主应用程序中转到 models.py 文件
  2. class Meta:
    abstract = True
    ordering = ['-percentage'] #Sort in desc order
    
  3. class Meta:
    abstract = True
    ordering = ['percentage'] #Sort in asc order
    

是的,您可以添加 订购到您的 ModelAdmin

下面是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']

这里的 姓氏我的模特中的字段。