Postdetail() получил неожиданный аргумент ключевого слова 'post'
У меня возникла ошибка в django/python. Я получаю эту ошибку, когда захожу в список постов и пытаюсь открыть детали поста:
postdetail() получил неожиданный аргумент ключевого слова 'post'
когда я пытаюсь
кодыviews.py:
from django.shortcuts import render, get_list_or_404
from django.http import HttpResponse
from django.urls.base import reverse
from django.urls.converters import SlugConverter
from .models import post
def index(request):
tpost = post.objects.all()
return HttpResponse("Welcome to the django website")
def postlist(request):
tpost = post.objects.filter(status = "published")
return render(request, "blog/post/list.html", {"posts": tpost})
def postdetail(request, npost, pk):
post = get_list_or_404(npost, slug = npost, id = pk)
return render(request, "blog/post/detail.html", {"fpost": post})
models.py Codes:
from django.contrib import auth
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
class post(models.Model):
STATUS_CHOICES = (
("draft", "Draft"),
("published", "Published"),
)
title = models.CharField(max_length = 250)
slug = models.SlugField(max_length = 250, unique_for_date = "publish")
author = models.ForeignKey(User, on_delete = models.CASCADE, related_name = "blog_post")
body = models.TextField()
publish = models.DateTimeField(default = timezone.now)
created = models.DateTimeField(auto_now_add = True)
updated = models.DateTimeField(auto_now = True)
status = models.CharField(max_length = 10, choices = STATUS_CHOICES, default = "draft")
objects = models.Manager()
class Meta:
ordering = ("-publish",)
def get_absolute_url(self):
return reverse("blog:post_detail", args = [self.slug, self.id])
def __str__(self):
return self.title
а это коды urls.py:
app_name = "blog"
urlpatterns = [
path("postlist/", views.postlist, name = "post_list"),
path("postdetail/<slug:post>/<int:pk>/", views.postdetail, name
= "post_detail"),
]