Reputation: 3489
Is there a way to pass _filter
to the QuerySet Manager as I try here? Currently, I always receive the error message too many values to unpack (expected 2)
.
def get_super_guests(self):
_filter = "answers__choices__answer='Very disappointed', answer_NPS__gte=9"
return Response.objects.get_super_guests(self.request.event.pk, _filter)
class ResponseQuerySet(models.QuerySet):
def get_super_guests(self, event_pk, _filter):
return (
self.filter(
survey__event=event_pk,
survey__template=settings.SURVEY_POST_EVENT,
answers__question__focus__in=[
QuestionFocus.FEELING_ABOUT_ATTENDING_AGAIN,
QuestionFocus.RECOMMENDATION_TO_FRIENDS,
],
)
.annotate(
answer_NPS=Case(
When(
answers__question__focus=QuestionFocus.RECOMMENDATION_TO_FRIENDS,
then=Cast(
'answers__answer', output_field=IntegerField()
)
)
)
)
.filter(
_filter
)
)
Upvotes: 2
Views: 68
Reputation: 3489
Sorry, I just figured out a better way. Works perfectly :)
def get_super_guests(self):
return Response.objects.get_super_guests(self.request.event.pk).filter(
answers__choices__answer="Very disappointed",
answer_NPS__gte=9,
)
Upvotes: 1