Django:models.FilePathField - >按字母顺序

时间:2015-03-05 11:35:25

标签: django admin alphabetical-sort

我定义了一个像这样的图像字段:

image = models.FilePathField(path="xxx",recursive=True, blank=True, null=True)

当我使用Django Admin时,图像的顺序是随机的。我怎样才能按字母顺序对它们进行排序?

编辑: 对象也有其他字段。但是字段是包含目录中所有图像的保管箱。这些图像不按字母顺序排序。

enter image description here

1 个答案:

答案 0 :(得分:1)

ordering选项添加到ModelAdmin

class MyAdmin(admin.ModelAdmin):
    ordering = ['image']

UPDATE :始终获取图像排序列表的最简单方法是使用模型定义中的Meta.ordering选项:

class Image(models.Model):
    image = models.FilePathField(path="xxx", recursive=True,
                                 blank=True, null=True)
    class Meta:
        ordering = ['image']

更新2 :如果您想按名称订购,则管理表单中唯一的外键字段会覆盖formfield_for_foreignkey()方法:

class MyAdmin(admin.ModelAdmin):

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "image":
            kwargs["queryset"] = Image.objects.all().order_by("image")
        return super(MyAdmin, self).formfield_for_foreignkey(
                                                  db_field, request, **kwargs)