Ale*_*lla 8 generics django django-class-based-views
如何在基于Classed的通用视图中访问request.user?
这是代码:
class TodayView(TemplateView):
template_name = "times/today.html"
if Records.objects.all().count() > 0:
last_record = Records.objects.latest('id')
else:
last_record = None
actual_time = datetime.today()
activities = Activity.objects.filter(owner=request.user)
def get_context_data(self, **kwargs):
context = super(TodayView, self).get_context_data(**kwargs)
context["today"] = self.actual_time
return context
Run Code Online (Sandbox Code Playgroud)
现在,我得到错误"请求未定义",如果我写"self.request.user",我得到"自我"没有定义,这是可以理解的.我可以想到几种方法来解决这个问题,但我想知道是否存在关于如何在Django Classed Based Generic Views上访问request.user的标准化/共识.
Dan*_*man 11
问题是你不应该在类级别放置代码.所有代码template_name都将在定义类时执行,而不是在调用视图时执行.不仅是self和request在这一点上没有定义,也today()将固定在进程启动.
所有代码都属于内部get_context_data,您可以从中进行操作self.request.user.
| 归档时间: |
|
| 查看次数: |
2570 次 |
| 最近记录: |