Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这个“如果”条件曾经运行过吗?_Python_Django_If Statement - Fatal编程技术网

Python 这个“如果”条件曾经运行过吗?

Python 这个“如果”条件曾经运行过吗?,python,django,if-statement,Python,Django,If Statement,我正在阅读一些代码,我在这里感到困惑: class PostListView(ListView): # compressed def get_context_data(self, **kwargs): session_key = 'viewed_topic_{}'.format(self.topic.pk) # <-- here if not self.request.session.get(session_key, False):

我正在阅读一些代码,我在这里感到困惑:

class PostListView(ListView):
    # compressed

    def get_context_data(self, **kwargs):

        session_key = 'viewed_topic_{}'.format(self.topic.pk)  # <-- here
        if not self.request.session.get(session_key, False):
            self.topic.views += 1
            self.topic.save()
            self.request.session[session_key] = True           # <-- until here

        kwargs['topic'] = self.topic
        return super().get_context_data(**kwargs)
类PostListView(ListView):
#压缩的
def获取上下文数据(自身,**kwargs):

session_key='viewsed_topic_{}.format(self.topic.pk)#将执行
if
条件(之前会出现异常)。将根据条件执行
if

如果认为该条件为真,则取决于是否未设置该主题id的键。对于该主题ID的第1次请求,该值应为true;对于同一会话中的任何后续请求,该值应为false。如果引发该键或异常的其他代码集,则可能会有所不同

顺便说一句,你可以使用:

if session_key not in self.request.session:

这也会更具可读性。

session\u key='viewsed\u topic\u{}.format(self.topic.pk)
该行指示发布/主题特定的会话密钥。
如果不是self.request.session.get(session\u key,False):
此行检查会话中是否有密钥。如果不是简单地将密钥添加到会话中。

注意:这不是登录会话密钥。因此,不要与登录会话键混淆。

打印(…)
放入
if
中,并使用不同的设置对其进行测试。您将看到是否可以访问
print()
。还可以在if语句之前放置一个不同的print语句,以检查它是否到达if语句,以感谢兄弟,如果条件很好,请用此语句替换它