【问题标题】:Django - Detecting Value of Field in Model - ViewsDjango - 检测模型中字段的值 - 视图
【发布时间】:2021-12-27 20:29:58
【问题描述】:

我需要遍历 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)

【问题讨论】:

    标签: django templates view


    【解决方案1】:

    values_list() 函数返回一个元组查询集。 for 循环中的语句 if type1 == "Date1": 试图比较 "Date1" 和元组之间的相等性,这永远不会是真的。查询集中的元组的长度都是 1,因为您只将一个字段传递给 values_list() 函数,因此您应该可以使用 if type1[0] == "Date1": 进行比较。

    【讨论】:

      猜你喜欢
      • 2017-12-08
      • 1970-01-01
      • 2020-11-09
      • 2018-01-06
      • 2010-12-11
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 2020-01-06
      相关资源
      最近更新 更多