首页 > 解决方案 > postdetail() 得到了一个意外的关键字参数“post”

问题描述

我在 django/python 中有错误。当我进入帖子列表并尝试打开帖子详细信息时出现此错误:

postdetail() 得到了一个意外的关键字参数“post”

当我尝试

view.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 代码:

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"),

]

标签: pythondjango

解决方案


推荐阅读