0
0 Комментариев

День добрый! Хотел узнать, каким способом делать ссылки вида cards?items=30 . Чтобы пользователь введя данный url получил список 30 элементов (передача элементов уже сделана через paginator, интересует именно создание сcылок). Пока что имеется в таком виде: например api/2 , возвращающая 2 элемента.

Мой views.py:

from django.views.generic import View
from django.core import serializers
from django.http import HttpResponse, JsonResponse
from django.core.paginator import Paginator
from cards.models import Card
 
 
class Api(View):
    def get(self, request, item_counts):
        cards = Card.objects.all()
        response_cards = []
        for card in cards:
            card_dict = {'url': card.url,
                         'image': card.image.path,
                         'type': card.type,
                         'preview': card.preview,
                         'category': card.category.title,
                         'title': card.title,
                         'has_button': card.has_button,
                         'button_text': card.button_text,
                         'button_url': card.button_url}
            response_cards.append(card_dict)
        elements_count = Paginator(response_cards, item_counts)
        return JsonResponse(elements_count.page(1).object_list, safe=False)

Мой urls.py:

from django.conf.urls import url
from python_ru.views import Api
from django.contrib import admin
 
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^api/(?P<item_counts>\d{1})', Api.as_view()),
]


Добавить комментарий