我正在通過示例從 Django3 書中學習。我有一個問題,我無法除錯它。我無法理解這是什么意思?
我在頁面上顯示帖子串列。當我單擊特定帖子以查看整個博客帖子時,會發生此錯誤。
這是我的錯誤:-
Traceback (most recent call last):
File "/mnt/g/Programming/django/blog/my_env/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/mnt/g/Programming/django/blog/my_env/lib/python3.8/site-packages/django/utils/deprecation.py", line 96, in __call__
response = self.process_response(request, response)
File "/mnt/g/Programming/django/blog/my_env/lib/python3.8/site-packages/django/middleware/clickjacking.py", line 26, in process_response
if response.get('X-Frame-Options') is not None:
Exception Type: AttributeError at /blog/2022/1/19/what-is-model/
Exception Value: 'tuple' object has no attribute 'get'
我的意見.py
from django.shortcuts import render, get_object_or_404
from .models import Post
# Create your views here.
def post_lists(request):
posts = Post.published.all()
return render(request, 'blog/post/list.html', { 'posts': posts})
def post_detail(request, year, month, day, post):
post = get_object_or_404(Post, slug = post, status='published', publish__year=year, publish__month=month, publish__day=day)
return(request, 'blog/post/detail.html', {'post': post})
我的模型.py
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
# Create your models here.
class PublishedManager(models.Manager):
def get_queryset(self):
return super(PublishedManager, self).get_queryset().filter(status='published')
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_posts')
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=50, choices=STATUS_CHOICES, default='draft')
def get_absolute_url(self):
return reverse('blog:post_detail', args=[self.publish.year, self.publish.month, self.publish.day, self.slug])
# managers
objects = models.Manager()
published = PublishedManager()
class Meta:
ordering = ('-publish',)
def __str__(self):
return self.title
uj5u.com熱心網友回復:
問題出在 post_detail 中。您回傳一個元組而不是呈現的頁面
return(request, 'blog/post/detail.html', {'post': post})
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/416244.html
標籤:
上一篇:django2vsdjango3如何寫路徑而不是url
下一篇:如何檢查請求用戶是否在模型類中
