Django - Определение значения поля в модели - Просмотры

Мне нужно перебрать все полевые объекты модели в Django. После просмотра мне нужно определить, что в любой из записей данных это конкретное поле(тип) равно "Date1". Если да, то мне нужно, чтобы оно отправило переменную(val), которая является строкой, равной "True", в шаблоны Django. У меня все готово, все кажется простым, и кажется, что это должно работать. Сама по себе переменная val может отправлять значение шаблону, когда она не находится в операторе if, и цикл for также работает правильно. Даже когда "Date1" существует как значение в поле типа записи в модели "Field_Repo1", val не отправляется и оператор if никогда не итерируется (я знаю это с помощью prints). Несмотря ни на что оператор if никогда не выполняется. Код ниже. Заранее спасибо.

context = {}
context['Field_Repo1'] = Field_Repo1.objects.filter(user=response.user)
for type1 in Field_Repo1.objects.values_list('type'):
    if type1 == "Date1":
        val = "True"
        context['val'] = val
        print(val)
        print(AHHHHHHHHHHHH)

if response.method == 'POST':
    form = Field_Repo1_Form(response.POST, response.FILES)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.user = response.user
        instance.save()
        response.user.Field_Repo1.add(instance)
        return redirect('repo1')
else:
    form = Field_Repo1_Form()
context['form'] = form

return render(response, 'sheets/add_fields/repo1_add_field.html', context)

Функция values_list() возвращает набор кортежей. Оператор в цикле for if type1 == "Date1": пытается сравнить равенство между "Date1" и кортежем, что никогда не будет верным. Все кортежи в наборе запросов имеют длину 1, поскольку вы передали только одно поле в функцию values_list(), поэтому вы должны быть в состоянии сделать if type1[0] == "Date1": для вашего сравнения.

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