我定义了一个像这样的图像字段:
image = models.FilePathField(path="xxx",recursive=True, blank=True, null=True)
当我使用Django Admin时,图像的顺序是随机的。我怎样才能按字母顺序对它们进行排序?
编辑: 对象也有其他字段。但是字段是包含目录中所有图像的保管箱。这些图像不按字母顺序排序。
答案 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)