Django Filter получение значения из поля

Как получить значение из поля после работающего фильтра?

all_q_answered = ProjectQuestionnaireAnswer.objects.filter(response = q_response, answer__isnull=False)

Мне нужно получить значения поля choice_weight из возвращенного кверисета?

Модель ProjectQuestoinnaireAnswer имеет fk к модели Choices, которая имеет значение веса выбора

class ProjectQuestionnaireAnswer(models.Model):
    YN_Choices = [
        ('Yes', 'Yes'),
        ('No', 'No'),
        ('Unknown', 'Unknown')
    ]
    question = models.ForeignKey(ProjectQuestionnaireQuestion, on_delete=models.CASCADE)
    answer = models.ForeignKey(Choice, on_delete=models.CASCADE,null=True)
    value = models.CharField(max_length=20, blank=True)
    notes = models.TextField(blank=True)
    response = models.ForeignKey(ProjectQuestionnaireResponse, on_delete=models.CASCADE)

class Choice(models.Model):
    question = models.ForeignKey(ProjectQuestionnaireQuestion, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    choice_value = models.CharField(max_length=20, blank=True)
    choice_weight = models.IntegerField(blank=True, null=True)

Спасибо

Вы можете использовать метод values():

all_q_answered = ProjectQuestionnaireAnswer.objects.filter(response = q_response, answer__isnull=False).values('choice_weight')

Это даст что-то вроде:

<QuerySet [{'choice_weight': 'first_choice'}, {'choice_weight': 'second_choice'}]>
all_q_answered = ProjectQuestionnaireAnswer.objects.filter(response = q_response, answer__isnull=False).values('question__choice_weight')

Вы можете использовать __ для получения значений связанных объектов.

Вернуться на верх