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')
Вы можете использовать __
для получения значений связанных объектов.