如何对Django-admin框中的多对多值进行字母顺序排序?

8

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

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']

不要这样做!这会对您的整个应用程序产生性能影响(请参见链接的Django文档中的警告)。我建议在这里使用Daniel更好的答案:https://dev59.com/ynM_5IYBdhLWcg3wNwQv#1474175 - Chronial

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接