Python django模板比较执行错误代码路径的文件中的数据
我有一个文件/tmp/something.txt,该文件的内容如下所示,只是一个简单的1 在我看来,我有以下几点Python django模板比较执行错误代码路径的文件中的数据,python,django,Python,Django,我有一个文件/tmp/something.txt,该文件的内容如下所示,只是一个简单的1 在我看来,我有以下几点 class StrippedView(需要访问,TemplateView): 模板名称='stripped' 标题='stripped' def获取上下文数据(自身,**kwargs): 打开('/tmp/something.txt',r')作为文件: data=file.read() 上下文=超级(剥离,自)。获取上下文数据(**kwargs) 上下文['title']=self.
class StrippedView(需要访问,TemplateView):
模板名称='stripped'
标题='stripped'
def获取上下文数据(自身,**kwargs):
打开('/tmp/something.txt',r')作为文件:
data=file.read()
上下文=超级(剥离,自)。获取上下文数据(**kwargs)
上下文['title']=self.title
上下文['something']=数据
返回上下文
这是我的模板中的内容
激活
{%if something='1%}
{%else%}
{%endif%}
以下是我所期望的情况
当文件中有1时,第一个按钮显示为activate(激活),如果文件还有其他内容,则会显示activate(激活)按钮
发生了什么事
而是始终显示激活按钮
我试过什么
起初,我想知道实际返回的是什么,所以我用如下变量替换了activate按钮的文本
这表明变量具有正确的数据,即1
我也尝试过在两种模式之间切换
{%if something='1%}
{%if something==1%}
两者似乎都有相同的结果,我也不知所措。read()将返回一个字符串,因此
{%if something==1%}
,将始终失败,您应该使用{%if something='1%}
。我在底部列出了我已经尝试了这两种方法,但考虑到您的评论,我已将代码更改为{%如果某物==1%}
但是它仍然不能像预期的那样工作@willemvanonsema你确定数据=='1'
,而不是'1'
,或者'1\n'
,或者类似的东西-带有一个不可见的字符吗?从命令行对文件进行快速vim时,它没有任何行或空格..我不确定如何验证它不是来自cod但我的观点是错误的@ForceBru@user4820734例如,您可以打印(repr(context['something')
。或者如果context['something']==1'
,则可以从Python打印调试消息。