使用Django通用视图时,可以根据request.user进行过滤吗? [英] Can I filter on request.user when using Django generic views?

查看:136
本文介绍了使用Django通用视图时,可以根据request.user进行过滤吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想做这样的事情(从我的 urls.py ),但我不知道是否可以让用户提出请求: p>

  url(r'^ jobs /(page(?P< page> [0-9] +)/)?$' 
object_list,{'queryset':Job.objects.filter(user = request.user),
'template_name':'shootmpi / molecule_list.html'},
name ='user_jobs' )


解决方案

您可以编写一个调用object_list的包装函数使用所需的查询器。



在urls.py:

  url (r'^(页(?P<页面[0-9] +)/)?$','views.user_jobs',name ='user_jobs')
pre>

在view.py:

  from django.views。通用代码列表

def user_jobs(请求,页面):
job_list = Job.objects.filter(user = request.user)
return object_list(request,queryset = Ĵ ob_list,
template_name ='shootmpi / molecule_list.html',
page = page)

有一个詹姆斯·班奈特(James Bennett)的好博客使用这种技巧。


I want to do something like this (from my urls.py), but I don't know if it's possible to get the user making the request:

    url(r'^jobs/(page(?P<page>[0-9]+)/)?$',
        object_list, {'queryset': Job.objects.filter(user=request.user), 
                      'template_name': 'shootmpi/molecule_list.html'},
        name='user_jobs'),

解决方案

You can write a wrapper function that calls object_list with the required queryset.

In urls.py:

url(r'^(page(?P<page>[0-9]+)/)?$', 'views.user_jobs', name='user_jobs')

In views.py:

from django.views.generic.list_detail import object_list

def user_jobs(request, page):
    job_list=Job.objects.filter(user=request.user)
    return object_list(request, queryset=job_list,
        template_name='shootmpi/molecule_list.html',
        page=page)

There's a good blog post by James Bennett on using this technique.

这篇关于使用Django通用视图时,可以根据request.user进行过滤吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆