【发布时间】:2018-01-05 00:42:55
【问题描述】:
大家好,我想弄清楚如何根据 manyToMany 字段订购查询集,但我还需要过滤该字段。这是确切的问题。
qs = Drink.objects.all()
我想通过相关字段ingredientsuserneeds来订购这个查询集
型号:
class IngredientsUserNeeds(models.Model):
user = models.ForeignKey(User, blank=True, null=True)
drinks = models.ManyToManyField(Drink)
count_need = models.IntegerField(default=0)
class Drink(models.Model):
name = models.CharField(max_length = 1000, null=True, blank=True)
user = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True)
在 DRF 列表视图中,我想通过饮料的 ingredientuserneeds_set 对查询集进行排序,但由用户过滤,这将返回一个长度为 1 的查询集,最后按查询集中该单个对象的 count_need 进行排序。这有点像
qs = qs.order_by('ingredientsuserneeds_set__filter(user=user)__first()__count_need')
但很明显,你不能做我输入的内容。有什么想法吗?
【问题讨论】:
标签: django python-3.x django-queryset