Мне нужно сгруппировать результаты по полю, для которого требуется несколько объединений из исходной модели:
// 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'))
Ответ -> клиент -> теги (поле многие ко многим указывает на тег) ->tag (тег в виде строки)
Модели:
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 группировать по тегу, но он отказывается.выдает ошибку:
Invalid field name: 'customer__tags__tag'
Кто-нибудь знает, как я могу получить его для группировки по тегу?Я попробовал все комбинации подчеркивания в тегах customer_ _tag, о которых я могу думать, но ничего не работает.