【发布时间】:2020-04-27 19:58:05
【问题描述】:
我正在尝试通过 ManyToMany 对象的“order”属性过滤对象。这里棘手的部分是我试图从查询中排除特定单位,但似乎找不到如何去做。
所以,查询应该做的基本上是:
- 获取分配给特定单元的所有问题对象(M2M 字段中的单元之一)
- 按分配给问题的所有其他单元的“顺序”属性对它们进行排序
例子
ID Question Question.unit
1 question1 unit1, unit2
2 question2 unit1, unit3
3 question3 unit1, unit4
ID Unit Unit.order
1 unit1 1
2 unit2 2
3 unit3 3
4 unit4 4
代码:
#views - my code so far, seems to filter by all units
def get_questions_beside_unit():
questions = Question.objects.filter(unit=quiz.unit).order_by('unit__order')
#models
class Question(models.Model):
...
unit = models.ManyToManyField(Unit)
class Unit(models.Model):
order = models.IntegerField()
【问题讨论】:
-
有什么原因不能使用
exclude()? -
我认为我的问题是我试图按特定的“单位”顺序对其进行排序。在我的例子中 - 不是“unit1”,而是每个“问题”中的另一个