【发布时间】:2020-09-01 02:14:34
【问题描述】:
我正在尝试创建一个博客,我可以通过基于类的列表视图在我的博客模型中显示对象列表。但是当尝试通过基于函数的详细视图单独显示它们时,我收到 404 错误。
(当前路径 blog/1 与其中任何一个都不匹配。)
我也尝试过基于类的视图,但不幸的是没有成功..请参阅..
models.py
from django.db import models
import datetime
# Create your models here.
class BlogPost(models.Model):
title = models.CharField(max_length=500)
writer = models.CharField(max_length=150,default='my dept')
category =models.CharField(max_length=150)
image = models.ImageField(upload_to='images')
post = models.TextField(max_length=2000)
Date = models.DateField( default=datetime.date.today)
def __str__(self):
return self.title
views.py
from django.views.generic import ListView , DetailView , UpdateView
from.models import BlogPost
class BlogList(ListView):
model = BlogPost
template_name = 'blog/bloglist.html'
context_object_name = 'post'
def detailview(request, id=None): blg = get_object_or_404(BlogPost, id=id)
context = {'blg': blg,
}
return render(request, 'blog/blogdetail.html', context)
urls.py
from django.urls import path
# importing views from views..py
from .views import BlogList ,detailview
urlpatterns = [
path('list', BlogList.as_view(), name='list'),
path('(?P<id>\d+)/$', detailview, name='detail')
]
bloglist.html
<div class="post-body">
{% for p in posts %}
<a href="/blog/{{ p.id }}"><blockquote>{{p}}</br></br>{{p.Date}}</blockquote>
</a>
{% endfor %}
【问题讨论】: