Объединение запросов в QuerySet
У меня есть модель в Django с тремя полями (my_code, cod_2, cod_3). При каждом запросе в QuerySet записывается одно из значений. Таких запросов 3. В итоге получаю три разных запроса. Мне нужно вытащить из этого QuerySet только заполненные, а не пустые values, то есть итого должен быть код, состоящий из трех цифр. Как это сделать? Заранее благодарю.
models.py
class Code(models.Model):
my_code = models.CharField(max_length=200)
cod_2 = models.CharField(max_length=200)
cod_3 = models.CharField(max_length=200)
class Meta:
ordering = ['-my_code']`
views одного из приложений:
def answer(request, question_id):
a=[1,2,3,4,5,6,7,8,9]
cret_2 = random.choice(a)
question = get_object_or_404(Question, pk=question_id)
try:
choice = question.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
return render(request, 'quest/detail.html', {'question': question, 'error_message': 'Вы не сделали выбор!'})
else:
if choice.correct:
cod_3 = Code(cod_3=cret_2)
cod_3.save()
return render(request, 'quest/quest.html', {'choice': choice, 'cret_2': cret_2})
else:
return render(request, 'quest/answer.html', {'question': question, 'error_message': 'Ответ неверный!'})
views для получения QuerySet:
def tot(request):
dic = Code.objects.all()
if request.method == 'POST':
user_cod = request.POST['cod']
d = dic.values()
if user_cod in d:
return HttpResponse('Вот это да! Вы выиграли')
else:
return render(request, 'tot/tot.html', {'d': d
})
Вот так выглядит результат:
Мне нужно получить: 221