Can I filter on request.user when using common Django views?

I want to do something like this (from mine urls.py), but I don't know if it is possible to force the user to make a 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'),
+5
source share
1 answer

You can write a wrapper function that calls object_list with the required set of queries.

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 nice James Bennett blog post about using this technique.

+8
source

All Articles