Django - 检测模型中字段的值 - 视图

Django - Detecting Value of Field in Model - Views

我需要遍历 Django 中模型的所有字段对象。浏览完后,我需要检测是否在任何数据条目中此特定字段(类型)等于“Date1”。如果是,我需要它向 Django 模板发送一个等于“True”的字符串变量(val)。我已经设置好所有东西,它看起来很简单,而且看起来应该可以工作。就其本身而言,val 可以在不在 if 语句中时向模板发送一个值,并且 for 循环也可以正常工作。 即使“Date1”作为模型“Field_Repo1”条目的类型字段中的值存在,也不会发送 val 并且永远不会迭代 if 语句(我知道这一点使用印刷品)无论 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() 函数 returns 元组查询集。 for 循环 if type1 == "Date1": 中的语句试图比较 "Date1" 和元组之间的相等性,这永远不会是真的。查询集中的元组的长度均为 1,因为您只将一个字段传递给 values_list() 函数,因此您应该能够执行 if type1[0] == "Date1": 进行比较。