Как сделать так, чтобы мои категории работали правильно?

Итак, я пытаюсь разделить посты моего блога по различным категориям, но сейчас все они отображаются как мое имя пользователя

blogcategory.html

{% extends "base.html" %}
{% block page_content %}
<div class="col-md-8 offset-md-2">
   <h1>{{ category | title }}</h1>
   <hr>
   {% for post in posts %}
      <h2><a href="{% url 'blogdetail' post.pk%}">{{ post.title }}</a></h2>
      <small>
        {{ post.created_on.date }} |
        Categories:
        {% for category in post.categories.all %}
        <a href="{% url 'blogcategory' category.name %}">
            {{ category.name }}
        </a>&nbsp;
        {% endfor %}
    </small>
    <p>{{ post.body | slice:":400" }}...</p>
   {% endfor %}
</div>
{% endblock %}

blogdetail.html

{% extends "base.html" %}
{% block page_content %}
<div class="col-md-8 offset-md-2">
    <h1>{{ post.title }}</h1>
    <small>
        {{ post.created_on.date }} |&nbsp;
        Categories:&nbsp;
        {% for category in post.categories.all %}
        <a href="{% url 'blogcategory' category.name %}">
            {{ category.name }}
        </a>&nbsp;
        {% endfor %}
    </small>
    <p>{{ post.body | linebreaks }}</p>
    <h3>Leave a comment:</h3>
    <form action="/blog/{{ post.pk }}/" method="post">
        {% csrf_token %}
        <div class="form-group">
            {{ user.username|default:'Guest' }}
        </div>
        <div class="form-group">
            {{ form.body }}
        </div>
        <button type="submit" class="btn btn-primary">Submit</button>
    </form>
    <h3>Comments:</h3>
    {% for comment in comments %}
    <p>
        On {{comment.created_on.date }}&nbsp;
        <b>{{ user.username|default:'Guest'}}</b> wrote:
    </p>
    <p>{{ comment.body }}</p>
    <hr>
    {% endfor %}
</div>
{% endblock %}
blogindex
{% extends "base.html" %}

{% block page_content %}
<div class="col-md-8 offset-md-2">
    <h1>Blog Index</h1>
    <hr>
    {% for post in posts %}
    <h2><a href="{% url 'blogdetail' post.pk%}">{{ post.title }}</a></h2>
    <small>
        {{ post.created_on.date }} |&nbsp;
        Categories:&nbsp;
        {% for category in post.categories.all %}
        <a href="{% url 'blogcategory' category.name %}">
            {{ category.name }}
        </a>&nbsp;blo
        {% endfor %}
    </small>
    <p>{{ post.body | slice:":400" }}...</p>
    {% endfor %}
</div>
{% endblock %}

models.py

from django.db import models


class Category(models.Model):
    name = models.CharField(max_length=20)


class Post(models.Model):
    title = models.CharField(max_length=255)
    body = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)
    last_modified = models.DateTimeField(auto_now=True)
    categories = models.ManyToManyField("Category", related_name="posts")


class Comment(models.Model):
    author = models.CharField(max_length=180)
    body = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)
    post = models.ForeignKey("Post", on_delete=models.CASCADE)

views.py

from django.shortcuts import render

from .forms import CommentForm
from .models import Post, Comment


def blogindex(request):
    posts = Post.objects.all().order_by("-created_on")
    context = {"posts": posts}
    return render(request, "blogindex.html", context)


def blogcategory(request, category):
    posts = Post.objects.filter(
        categories__name__contains=category
    ).order_by(
        '-created_on'
    )
    context = {
        "category": category,
        "posts": posts
    }
    return render(request, "blog_category.html", context)



def blogdetail(request, pk):
    post = Post.objects.get(pk=pk)
    comments = Comment.objects.filter(post=post)

    form = CommentForm()
    if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = Comment(
                author=form.cleaned_data["author"],
                body=form.cleaned_data["body"],
                post=post,
            )
            comment.save()

    context = {"post": post, "comments": comments, "form": form}
    return render(request, "blogdetail.html", context)

Реалистично я должен иметь возможность сделать пост определенной категории и нажимать на эти категории, когда я их вижу. Но по какой-то причине категории по умолчанию соответствуют имени пользователя человека, который их создал, и их нельзя изменить. Пожалуйста, помогите.

Вернуться на верх