Выбрать данные из базы данных django
Как выбрать пост из базы данных по id который поступает в функцию post_view? В return видно элементы которые нужны, была идея делать как profile, но получается какой то неправильный вариант
models.py
from django.db import models
from django.contrib.auth import get_user_model
User = get_user_model()
class Group(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(max_length=50, unique=True)
description = models.TextField(blank=True, null=True)
def __str__(self):
return self.title
class Post(models.Model):
text = models.TextField()
pub_date = models.DateTimeField("date published", auto_now_add=True)
author = models.ForeignKey(User, on_delete=models.CASCADE,
related_name="posts")
group = models.ForeignKey(Group, blank=True, on_delete=models.SET_NULL,
related_name="posts", null=True)
class Meta:
ordering = ['-pub_date']
views.py
from django.shortcuts import render, get_object_or_404
from django.core.paginator import Paginator
from .models import Post, Group, User
def index(request):
post_list = Post.objects.all()
paginator = Paginator(post_list, 10)
page_number = request.GET.get('page')
page = paginator.get_page(page_number)
return render(
request,
'index.html',
{'page': page, }
)
def group_posts(request, slug):
group = get_object_or_404(Group, slug=slug)
posts_list = group.posts.all()
paginator = Paginator(posts_list, 10)
page_number = request.GET.get('page')
page = paginator.get_page(page_number)
return render(request, "group.html", {"group": group, "page": page})
def profile(request, username):
author = get_object_or_404(User, username=username)
posts_list = author.posts.all()
paginator = Paginator(posts_list, 10)
page_number = request.GET.get('page')
page = paginator.get_page(page_number)
post_count = paginator.count
return render(request, 'profile.html', {'author': author,
'page': page,
'count': post_count})
def post_view(request, username, post_id):
pass
"""return render(request, 'post.html', {'author': author,
'post': post,
'count': post_count})"""