Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.core.paginator import Paginator
- from django.shortcuts import render, get_object_or_404, redirect
- from django.contrib.auth.decorators import login_required
- from django.contrib.auth import get_user_model
- from .models import Post, Group
- from .forms import PostForm
- User = get_user_model()
- def index(request):
- post_list = Post.objects.all().order_by('-id')
- paginator = Paginator(post_list, 10)
- # Из URL извлекаем номер запрошенной страницы - это значение параметра page
- 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 = group.posts.all()
- # Показывать по 10 записей на странице.
- paginator = Paginator(posts, 10)
- # Из URL извлекаем номер запрошенной страницы - это значение параметра page
- page_number = request.GET.get('page')
- # Получаем набор записей для страницы с запрошенным номером
- page = paginator.get_page(page_number)
- return render(request, "group.html", {"group": group, "page": page})
- @login_required
- def new_post(request):
- form = PostForm(request.POST or None)
- if not form.is_valid():
- return render(request,
- 'new.html', {'form': form,
- 'but': 'Добавить', })
- else:
- post = form.save(commit=False)
- post.author = request.user
- post.save()
- return redirect('index')
- return render(request,
- 'new.html', {'form': form,
- 'but': 'Добавить', })
- def profile(request, username):
- user_prof = get_object_or_404(User, username=username)
- post_list = user_prof.posts.all()
- paginator = Paginator(post_list, 10)
- page_number = request.GET.get('page')
- page = paginator.get_page(page_number)
- return render(request, 'profile.html', {'author': user_prof,
- 'page': page, })
- def post_view(request, username, post_id):
- post = get_object_or_404(Post, author__username=username, pk=post_id)
- return render(request, 'post.html',
- {'author': post.author,
- 'post': post})
- @login_required
- def post_edit(request, username, post_id):
- text_post = get_object_or_404(Post, pk=post_id, author__username=username)
- if text_post.author != request.user:
- return redirect('post', username=username,
- post_id=post_id)
- form = PostForm(request.POST or None, files=request.FILES or None,
- instance=text_post)
- if not form.is_valid():
- return render(request,
- 'new.html', {'form': form,
- 'but': 'Редактировать', })
- post = form.save(commit=False)
- post.save()
- return redirect('post', username=username,
- post_id=post.id)
- return render(request,
- 'new.html', {'form': form,
- 'but': 'Редактировать',
- 'lab': 'Редактировать запись', })
- def page_not_found(request, exception):
- return render(
- request,
- "misc/404.html",
- {"path": request.path},
- status=404
- )
- def server_error(request):
- return render(request, "misc/500.html", status=500)
Advertisement
Add Comment
Please, Sign In to add comment