我要编写简单的Django博客应用程序。
Django Version: 2.0.4
http://dpaste.com/0H62TQY - 这是错误输出。 (我希望在互联网上显示这个文件是安全的=))
models.py
看起来像
from django.db import models
from django.shortcuts import reverse
from django.template.defaultfilters import slugify
from django.utils import timezone
class Blog(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.PROTECT)
title = models.CharField(max_length=500)
body = models.TextField()
created_at = models.DateTimeField(default=timezone.now)
slug = models.SlugField(default='', editable=False, unique=True, blank=False, null=False)
class Meta:
verbose_name_plural = "blog"
def __str__(self):
return self.title
def get_absolute_url(self):
kwargs = {'slug': self.slug}
return reverse('blog_detail', kwargs=kwargs)
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
super().save(*args, **kwargs)
views.py
看起来像
from django.views.generic import DetailView, ListView
from .models import Blog
class HomeView(ListView):
template_name = 'blog/blog.html'
queryset = Blog.objects.order_by('-created_at')
class BlogDetail(DetailView):
model = Blog
template_name = 'blog/blog-detail.html'
urls.py
看起来像
from django.urls import path, re_path
from . import views
urlpatterns = [
path(r'', views.HomeView.as_view(), name='home'),
re_path(r'^(?P<slug>[-\w]*)/$', views.BlogDetail.as_view(), name='blog_detail'),
]
这是我的blog.html
{% for blog in blog_list %}
<div class="item-blog-txt p-t-33">
<h4 class="p-b-11">
<a class="m-text24" href="{{ blog.get_absolute_url }}">
{{ blog.title }}
</a>
</h4>
<div class="s-text8 flex-w flex-m p-b-21">
<span>
{{ blog.author }}
<span class="m-l-3 m-r-6">|</span>
</span>
</div>
<p class="p-b-12">
{{ blog.body|linebreaksbr }}
</p>
<a class="s-text20" href="{{ blog.get_absolute_url }}">
Continue Reading
<i aria-hidden="true" class="fa fa-long-arrow-right m-l-8"></i>
</a>
</div>
{% endfor %}
blog-detail.html
看起来像<a href="{{ blog.get_absolute_url }}">
和{{ blog.title }}
,可以说出一切
如果您需要显示其他内容,请给我发电子邮件
makemigrations
和migrate
已成立。
非常感谢你。
答案 0 :(得分:0)
这是数据库中的问题 这是一个新项目,所以我也可以删除并启动一个新数据库。