Разбивка на страницы с помощью JsonResponse и изменение некоторых атрибутов объекта в представлении - PullRequest
0 голосов
/ 26 марта 2020

Я новичок во взглядах Django, и я пытаюсь получить JSON данные с разбивкой на страницы, также я хочу изменить некоторые атрибуты моих данных, например, созданный_, дать мне результат, подобный этому '2020-03- 24T22: 49: 45.956Z ', и мне нужен такой формат, как «Марс 26, 2020» (я знаю, что могу изменить формат в шаблоне, но в моем случае мне нужно изменить его в поле зрения), также мне нужно изменить что-то в содержании, я пытаюсь заставить функцию сделать это, я знаю, что есть инфраструктура отдыха, которая облегчит работу, но я не думаю, что если я установил целую инфраструктуру только для одной функции, это хорошо идея, поэтому я пытаюсь сделать один сам.

Мой снимок:

def get_posts(request):
    # get all posts
    posts = Post.objects.all()
    # get current page and how max page of our posts
    page = request.GET.get('page', 1)
    pagesCount = math.ceil(posts.count() / 3)

    # check the param page if is a number
    if page.isdigit():
        currentPage = int(page)
    else:
        currentPage = 1

    # check if is between 1 ans max page
    if currentPage > pagesCount:
        currentPage = pagesCount
    elif currentPage < 1:
        currentPage = 1

    # get posts that we need
    post_list = posts[currentPage * 3 - 3: currentPage * 3]
    post_list = post_list.values('id', 'title', 'content', 'thumbnail', 'category', 'slug', 'created_at', 'updated_at')

    return JsonResponse({"items": { "currentPage": currentPage, "pageCount": pagesCount, "posts": list(post_list) }})

и сообщение, если вам нужна дополнительная информация:

class Post(models.Model):
    """Post object"""

    title = models.CharField(max_length=255)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title
...