【发布时间】:2019-05-09 06:48:18
【问题描述】:
我正在阅读一些代码,我在这里感到困惑:
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)
所以if 条件检查如果没有与该键的会话,则将self.topics.view 加一。
我在这里感到困惑,因为每当用户登录网站时,他们的会话都会自动创建,除非用户没有登录网站,否则没有会话的可能性为零。 (请注意,本项目不允许未经身份验证的用户查看主页,必须登录。)
这个if 条件会被执行吗?
【问题讨论】:
-
将
print(...)放入if并使用不同的设置对其进行测试。您将看到是否可以联系到print()。 -
还在 if 语句之前放置一个不同的 print 语句,以检查它是否到达 if 语句开头
标签: python django if-statement