class Tag(models.Model):
name = models.CharField(max_length=50, unique=True) def clean(self):
self.name = self.name.lower() def __str__(self):
return self.name tags = models.ManyToManyField('Tag', related_name='posts') def get_absolute_url(self):
return reverse('tag_posts', args=[str(self.name)])Remove <!-- --> tags from both index and post templates.
def tag_posts(request, name):
name = name.lower()
try:
tag = Tag.objects.get(name=name)
posts = tag.posts.all()
except:
posts = []
title = "Posts about {}".format(name)
return render(request, 'mainapp/filtered_post_list.html', {'posts':posts, 'title':title}) path('tag/<str:name>', views.tag_posts, name='tag_posts'),from .models import BlogPost, Tag
admin.site.register(Tag)TBD
python manage.py makemigrations
python manage.my migrate