基本上我想使用一个基于用户名列出对象的通用视图。现在,问题是,我该怎么做:

(r'^resources/$',
  ListView.as_view(
    queryset=Resources.objects.filter(user=request.user.username),
    ...
  )
)

但是我找不到访问httprequest(请求)对象的方法…或者我需要使用自己的视图并在那里进行所有对象选择?

最佳答案

如果您真的想直接把urlconf弄乱,可以这样做:

(r'^resources/$',
 lambda request: ListView.as_view(queryset=Resources.objects.filter(user=request.user.username), ...)(request)
)

或者通过子类化视图访问请求:
class MyListView(ListView):
    def dispatch(self, request, *args, **kwargs):
        self.queryset = Resources.objects.filter(user = request.user.username)
        return super(MyListView, self).dispatch(request, *args, **kwargs)

07-28 02:28
查看更多