How to access HttpRequest from urls.py in Django? or better way.

265 views
Skip to first unread message

losingle

unread,
Jun 10, 2012, 12:21:08 AM6/10/12
to Django users
I need access HttpRequest from urls.py
news_info_dict = {
'queryset': News.published.all(),
'date_field': 'pub_date',
}

news_info_month_dict = {
'queryset': News.published.all(),
'date_field': 'pub_date',
'month_format': '%m',
}

urlpatterns = patterns('django.views.generic.date_based',
(r'^$','archive_index', news_info_dict, 'news_archive_index'),
(r'^(?P<year>\d{4})/$','archive_year', news_info_dict,
'news_archive_year'),
(r'^(?P<year>\d{4})/(?P<month>\d{2})/$','archive_month',
news_info_month_dict, 'news_archive_month'),
(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/
$','archive_day', news_info_month_dict, 'news_archive_day'),
(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[-\w]
+).html$','object_detail', news_info_month_dict, 'news_detail'),
)

news_info_dict should be
news_info_dict = {
'queryset':News.published.filter(category=
request.category).all(),
'date_field': 'pub_date',
}

I couldn't find a way to access the HttpRequest (request) object
though... Or find the better way ...

Daniel Roseman

unread,
Jun 10, 2012, 9:19:02 AM6/10/12
to django...@googlegroups.com
On Sunday, 10 June 2012 05:21:08 UTC+1, losingle wrote:

news_info_dict should be
news_info_dict = {
    'queryset':News.published.filter(category=
request.category).all(),
    'date_field': 'pub_date',
}

I couldn't find a way to access the HttpRequest (request) object
though... Or find the better way ...

Your code doesn't set `request.category` anywhere anyway, so even if you could access request it wouldn't work.

However, this can't be done. Instead you should use the generic class-based views, subclass the appropriate one and override `get_query_set` to access `self.kwargs['category']`. See the documentation:
--
DR. 

Jinxing Ding

unread,
Jun 10, 2012, 9:58:12 AM6/10/12
to django...@googlegroups.com
Sorry!
I using request.GET['category']

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/x9V4EWUyV6kJ.
To post to this group, send email to django...@googlegroups.com.
To unsubscribe from this group, send email to django-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply all
Reply to author
Forward
0 new messages