Django订购多对多关系

时间:2020-01-27 18:29:31

标签: django python-3.x

我一直在使用以下模型来研究Django的多对多领域:

class ProjectLanguage(models.Model):
    title = models.CharField(max_length=15)

    def __str__(self):
        return self.title

class Project(models.Model):
    title = models.CharField(max_length=30)
    img = models.CharField(max_length=50)
    main_text = models.TextField(default="main project description ...", null=True, blank=True)
    languages = models.ManyToManyField(ProjectLanguage)

    def __str__(self):
        return self.title

我想获取按其ProjectLanguage标题排序的项目列表。如何使用Django实现此目标?

谢谢

标记

1 个答案:

答案 0 :(得分:0)

您可以定义这样的方法:

class Project(models.Model):
    ...
    def ordered_languages(self):
        return self.languages.all().order_by('title')

或者您可能希望将through tableordering一起使用。