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":
进行比较。
我需要遍历 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":
进行比较。