Передача аргументов в общие представления Django queryset - PullRequest
1 голос
/ 10 февраля 2010

Я хотел бы создать набор запросов для общего представления следующим образом:

 category_info = {
      'queryset' : ModelObject.objects.filter(category=category_id)
 }

, где category_id будет указано в URL

 (r'^category/(?P<category_id>\d+)$', 'object_list', category_info )

Но я не знаю, как взять данные из URL-адреса и передать их информации о категории ...

1 Ответ

3 голосов
/ 10 февраля 2010

Вам нужно определить свой собственный вид и вернуть общий вид изнутри:

urls.py:

(r'^category/(?P<category_id>\d+)$', 'myapp.views.category_list')

MyApp / views.py

from django.views.generic.list_detail import object_list
def category_list(request, category_id):
    queryset = ModelObject.objects.filter(category=category_id)
    return object_list(request, queryset=queryset)

Вы также можете дополнительно настроить общий вид, используя параметры, упомянутые в документации . (Вы также можете проверить, что категория существует, выбрасывая 404, когда ее нет)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...