NameError at /post/category/

Ловлю ошибку - NameError at /post/category/. Хотя по коду вроде всё верно.

введите сюда описание изображения

models.py:

from django.contrib.auth.models import User
from django.db import models


class Post(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE,
                               blank=True, null=True)
    title = models.CharField(max_length=255)
    text = models.TextField()
    created_date = models.DateTimeField(auto_now_add=True)
    views = models.PositiveIntegerField(default=0)
    like = models.PositiveIntegerField(default=0)
    enabled = models.BooleanField(default=False)
    category = models.ForeignKey(
        "Category", on_delete=models.CASCADE, blank=True, null=True)

    def __str__(self):
        return f'{self.title}'


class Comment(models.Model):
    post = models.ForeignKey(
        Post, on_delete=models.PROTECT, blank=True, null=True)
    author = models.ForeignKey(
        User, on_delete=models.CASCADE, blank=True, null=True)
    text = models.TextField()
    created_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f'{self.text}'


class Category(models.Model):
    title = models.TextField()
    enabled = models.BooleanField(default=False)

    def __str__(self):
        return f'{self.title}'

views.py:

from blog.forms import PostForm
from blog.models import Post
from django.http import Http404
from django.shortcuts import get_object_or_404, redirect, render


# Create your views here.
def post_list(request):
    posts = Post.objects.filter(enabled=True)
    return render(request, "blog/post_list.html", {"posts": posts})


def post_detail(request, post_pk):
    post = get_object_or_404(Post, pk=post_pk)
    post.views += 1
    post.save()
    return render(request, "blog/post_detail.html", {"post": post})


def post_new(request):
    if request.method == "GET":
        form = PostForm()
        return render(request, "blog/new_post.html", {"form": form})
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.save()
            return redirect('post_detail', post_pk=post.pk)


def post_edit(request, post_pk):
    post = Post.objects.filter(pk=post_pk).first()
    if not post:
        raise Http404("Post not found")
    if request.method == "GET":
        form = PostForm(instance=post)
        return render(request, "blog/post_edit.html", {"form": form})
    if request.method == "POST":
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            post = form.save()
            return redirect('post_detail', post_pk=post.pk)


def post_delete(request, post_pk):
    post = get_object_or_404(Post, pk=post_pk)
    post.delete()
    return redirect("post_list")


def post_like(request, post_pk):
    post = get_object_or_404(Post, pk=post_pk)
    post.like += 1
    post.save()
    return render(request, "blog/post_detail.html", {"post": post})


def post_draft(request):
    posts = Post.objects.filter(enabled=False)
    return render(request, "blog/post_draft.html", {"posts": posts})


def post_public(request, post_pk):
    post = get_object_or_404(Post, pk=post_pk)
    post.enabled = True
    post.save()
    return render(request, "blog/post_detail.html", {"post": post})


def category_list(request):
    categorys = Category.objects.all()
    return render(request, "blog/category_list.html", {'categorys': categorys})


def category_in_list(request, category_id):
    posts = Post.objects.filter(category=category_id)
    return render(request, "blog/post_list.html", {'posts': posts})

urls.py:

from django.urls import path, include
from blog.views import (category_in_list, category_list, post_delete,
                        post_detail, post_draft, post_edit, post_like,
                        post_list, post_new, post_public)

urlpatterns = [
    path('list/', post_list, name="post_list"),
    path('detail/<int:post_pk>', post_like, name="post_like"),
    path('detail/<int:post_pk>/', post_detail, name="post_detail"),
    path('new/', post_new, name="post_new"),
    path('edit/<int:post_pk>/', post_edit, name="post_edit"),
    path('delete/<int:post_pk>/', post_delete, name="post_delete"),
    path('draft/', post_draft, name="post_draft"),
    path('Publish a post/<int:post_pk>/', post_public, name="post_public"),
    path('category/', category_list, name='category_list'),
    path('category/<int:category_id>', category_in_list,
         name='category_in_list'),

]
Вернуться на верх