django:如何在values()中使用多对多关系?
我需要按需要原始模型中的几个连接的字段对结果进行分组:django:如何在values()中使用多对多关系?,django,Django,我需要按需要原始模型中的几个连接的字段对结果进行分组: // response_filter_args is created dynamically responses = Response.objects.filter(**response_filter_args) \ .values('customer__tags__tag') \ # django doesn't like this .annotate(average_sc
// response_filter_args is created dynamically
responses = Response.objects.filter(**response_filter_args) \
.values('customer__tags__tag') \ # django doesn't like this
.annotate(average_score=Avg('rating__score'))
响应->客户->标记(指向标记的多对多字段)->标记(标记为字符串)
模型包括:
class Response(models.Model):
customer = models.ForeignKey(Customer)
...
class Customer(models.Model):
tags = models.ManyToManyField(Tag)
...
class Tag(models.Model):
tag = models.CharField(max_length=255)
...
我在计算平均评分。为了让它工作,我需要告诉django按“tag”分组,但它拒绝。它给出了一个错误:
Invalid field name: 'customer__tags__tag'
有人知道我怎样才能把它按标签分组吗?我已经尝试了我能想到的customer_tags_tag中所有下划线的组合,但没有任何效果 如果您查看,您将看到多对多现场支持仅添加到开发版本中,并且:
先前[pre-dev version]的values()方法没有为ManyToManyField属性返回任何内容,如果您试图将此类字段传递给它,则会引发错误
如果您签出,您将看到多对多现场支持仅添加到开发版本中,并且:
先前[pre-dev version]的values()方法没有为ManyToManyField属性返回任何内容,如果您试图将此类字段传递给它,则会引发错误
我不认为这会起作用,因为django无法通过一个查询获得通过多个关系关联的对象。我不认为这会起作用,因为django无法通过一个查询获得通过多个关系关联的对象。没有您的模型很难判断,但是,如果您的客户模型中有一个标签字段,那么只需引用该字段即可。
。值(客户标签)
客户标签也不起作用。我已将我的模型添加到我的问题中。如果没有您的模型,很难判断,但是如果您的客户模型中有一个标记字段,那么只需引用该字段即可。值(客户标记)客户标记也不起作用。我在问题中添加了我的模型。