如何按字母排序Django后台多对多框中的值?

8 投票
1 回答
2887 浏览
提问于 2025-04-15 13:50

我有一个简单的模型,像这样:

class Artist(models.Model):
   surname = models.CharField(max_length=200)
   name = models.CharField(max_length=200, blank=True)
   slug = models.SlugField(unique=True)
   photo = models.ImageField(upload_to='artists', blank=True)
   bio = models.TextField(blank=True)  

class Images(models.Model):
   title = models.CharField(max_length=200)
   artist = models.ManyToManyField(Artist)
   img = models.ImageField(upload_to='images')

我开始插入一些艺术家,然后去填写图片的插入表单。结果发现,多个艺术家的选择框没有排序,显示的顺序是:

  • Mondino Aldo
  • Aliprandi Bernardo
  • Rotella Mimmo
  • Corpora Antonio

而我希望它能显示成:

  • Aliprandi Bernardo
  • Corpora Antonio
  • Mondino Aldo
  • Rotella Mimmo

我该怎么解决这个问题呢?有什么建议吗?谢谢大家。

Matteo

1 个回答

8

在文章的内部 Meta 类中设置 ordering

class Article(models.Model):
    ....

    class Meta:
        ordering = ['surname', 'name']

撰写回答