Can';t文本比较Django模型字段

Can';t文本比较Django模型字段,django,django-models,foreign-keys,Django,Django Models,Foreign Keys,我在Django中设置了一个“报告”模型,它表示上传到站点的特定报告。此模型与“UserTechnology”模型具有ForeignKey关系,该模型是最终用户可以访问上载报告的所有可用方式的列表 我正在index.html页面上显示这些报告和有关它们的一些信息。我想根据特定报告的“UserTechnology”值将传递的url切换到链接报告的位置 当试图将报表的UserTechnology值与任何内容进行比较时,就会出现问题。例如,如果我只显示{{report.UserTechnology}}

我在Django中设置了一个“报告”模型,它表示上传到站点的特定报告。此模型与“UserTechnology”模型具有ForeignKey关系,该模型是最终用户可以访问上载报告的所有可用方式的列表

我正在index.html页面上显示这些报告和有关它们的一些信息。我想根据特定报告的“UserTechnology”值将传递的url切换到链接报告的位置

当试图将报表的UserTechnology值与任何内容进行比较时,就会出现问题。例如,如果我只显示
{{report.UserTechnology}}
,它工作正常,示例值为“FileManager”。但是,如果我在report.UserTechnology%}中尝试类似于
{%file%”或
{%report.UserTechnology==“FileManager%}
的内容,它总是返回False

我认为问题在于,在处理ForeignKey关系时,我没有比较我认为我在比较的内容,但我不确定如何访问除report.UserTechnology以外的特定报表的UserTechnology.Name的值

models.py: Index.html:
{%用于报告中的报告%}
{%if-forloop.counter0 |可除性比:4%}{%endif%}

{{report.ReportText}

{%if-forloop.counter |可除数by:4或forloop.last%}
{%endif%} {%endfor%}
报告。UserTechnology
是一个外键,它指向整个UserTechnology对象。如果要与字符串进行比较,需要与对象上的一个字段进行比较:

{% if report.UserTechnology.Name == "FileManager %}

report.UserTechnology
是一个外键,它指向整个UserTechnology对象。如果要与字符串进行比较,需要与对象上的一个字段进行比较:

{% if report.UserTechnology.Name == "FileManager %}

当您在模板中呈现report.UserTechnology时,Django模板语言隐式返回UserTechnology上的隐藏类方法str,但这并不是您要比较的相等性

如果要将report.UserTechnology与字符串进行比较,则需要指定相应的属性

ie,report.UserTechnology.Name=='FileManager'

当您将report.UserTechnology与“FileManager”进行比较时,您正在比较report.UserTechnology对象。==“FileManager”为False

查看此活动的一个好方法是在代码中使用堆栈跟踪


在视图逻辑中,可以添加
import pdb;pdb.set_trace()
。当您运行代码时,服务器将在此时停止,尝试对报表对象运行一些打印语句。

当您在模板中呈现report.UserTechnology时,Django模板语言隐式返回UserTechnology上的隐藏类方法str,但这不是您要再次比较的nst代表平等

如果要将report.UserTechnology与字符串进行比较,则需要指定相应的属性

ie,report.UserTechnology.Name=='FileManager'

当您将report.UserTechnology与“FileManager”进行比较时,您正在比较report.UserTechnology对象。==“FileManager”为False

查看此活动的一个好方法是在代码中使用堆栈跟踪


在视图逻辑中,可以添加
import pdb;pdb.set_trace()
。当您运行代码时,服务器将在此时停止,尝试对您的报表对象运行一些打印语句。

谢谢,这些跟踪信息在将来会有帮助。谢谢,这些跟踪信息在将来会有帮助。我想我遗漏了一些基本的东西。谢谢。我想我遗漏了一些东西就这样吧,谢谢你。
{% if report.UserTechnology.Name == "FileManager %}