Не понимаю, почему не работает, копирую из предыдущего рабочего проэкта
Типичный блог, есть страницы со всеми постами и ссылка на отдельный пост
models:
from django.db import models
from django.utils import timezone
class Note(models.Model):
title = models.CharField(max_length = 50)
body = models.TextField()
likes = models.IntegerField(default=0)
image = models.ImageField(null=True, blank=True, upload_to="images/")
is_active = models.BooleanField(default=True)
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return "%s" % self.title
class Meta:
verbose_name = 'Запись'
verbose_name_plural = 'Записи'
urls:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^blog/$', views.blog, name='blog'),
url(r'^post/(?P<pk>\d+)/$', views.post, name='blog-post.html'),
]
views:
from django.shortcuts import render, get_object_or_404
from django.utils import timezone
from .models import *
def blog(request):
note = Note.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog.html', {'note': note})
def post(request, pk):
post = get_object_or_404(Note, pk=pk)
return render(request, 'blog-post.html', {'post': post})
Главная страница постов :
<!-- Main page content start -->
<div class="container-fluid">
<div class="row">
{% for note in note %}
<div class="col-4">
<div class="card">
<div class="card-body">
<h3 class="card-title text-center"><a href="{% url 'post' pk=note.pk %}">{{note.title}}</h3>
<p class="card-text">{{note.body|truncatechars_html:300}}</p>
<img class="card-img-bottom" src="{{note.image.url}}" alt="Card image cap">
</div>
<p class="card-text text-center"><small class="text-muted ">Published:{{note.published_date|date:"d.m.Y"}} Likes:{{note.likes}}</small></p>
</div>
</div>
{% endfor %}
</div>
</div>
<!-- Main page content end -->
Страница отдельного поста:
<!-- Main page content start -->
<div class="container-fluid">
<div class="card text-center">
<div class="card-body">
{% for note in note %}
<h2 class="card-title">{{note.title}}</h2>
<div class="row">
<div class="col">
<p class="card-text text-left ">{{note.body}}</p>
</div>
<div class="col">
<img src="{{note.image.url}}" alt="Card image cap">
</div>
</div>
<div class="card-footer text-muted">
Published:{{note.published_date|date:"d.m.Y"}} Likes:{{note.likes}}
</div>
{% endfor %}
</div>
</div>
<!-- Main page content end -->
Когда переходишь на blog ошибка
spoiler
NoReverseMatch at /blog/
Reverse for 'post' not found. 'post' is not a valid view function or pattern name.
и жалуется на запись
<h3 class="card-title text-center"><a href="{% url 'post' pk=note.pk %}">{{note.title}}</h3>
когда переходишь на post/1 или любой другой post/n
страницу отображает, но не выводит никакие объекты модели, чистый шаблон