Ok so I've spent the best part of a day driving myself insane. So there's a blog page that runs through all iterations in the database and populates the html page. When you click read more {{i.get_absolute_url}} this is then meant to take you to viewing the full post. This full post will be blog/<slug>.html but I'm having real difficulty passing this through the cycle. Can anyone help :(
The error i currently get is
The current path, blog/('view_blog_post', None, {'slug': 'welcome-our-special-offers'}), didn't match any of these.
From views.py
The error i currently get is
The current path, blog/('view_blog_post', None, {'slug': 'welcome-our-special-offers'}), didn't match any of these.
From views.py
#Blog Below
def blog(request):
return render_to_response('blog.html',{
'categories' : Category.objects.all(),
'posts': Blog.objects.all()
})
def viewpost(request, slug):
return render_to_response('view_post.html',{
'posts': get_object_or_404(slug=slug)
})
def viewcategory(request, slug):
category = get_object_or_404(Category, slug=slug)
return render_to_response('view_category.html',{
'category' : category,
'posts' : Blog.objects.filter(category=category)[:5]
})from urls.pyfrom django.urls import path, re_path
from . import views
from django.conf.urls import url
urlpatterns = [
path('', views.index, name="index"),
path('contact-us/', views.contacts, name="contacts"),
path('pricing/', views.pricing, name="pricing"),
path('blog/', views.blog, name="blog"),
re_path(r'^blog/view/(?P<slug>[\w-]+).html', views.viewpost, name='view_blog_post'),
re_path(r'^blog/category/', views.viewcategory, name="view_blog_category"),
]from models.pyclass Blog(models.Model):
title = models.CharField(max_length=100, unique = True)
slug = models.SlugField(max_length=100, unique = True)
body = models.TextField()
posted = models.DateTimeField(default=timezone.now)
category = models.ForeignKey('Marketing.Category', on_delete=models.CASCADE)
postimage = models.FileField(upload_to='assets/img', blank=True)
def __str__(self):
return f'{self.id} ({self.title})'
def get_absolute_url(self):
return ('view_blog_post', None, {'slug' : self.slug})
#Category for Blog
class Category(models.Model):
title = models.CharField(max_length=100, db_index=True)
slug = models.SlugField(max_length=100, db_index=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return ('view_blog_category', None, {'slug' : self.slug})
