使用Django通用视图时,可以根据request.user进行过滤吗? [英] Can I filter on request.user when using Django generic views?
本文介绍了使用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屋!
查看全文