Проблемы с первичным ключом Django

Я создаю простой проект блога. В моем проекте есть одна страница, на которой находится список всех записей блога. Если вы нажмете на название поста, вы перейдете к нему. Я использовал (?P\d+) в пути URL, чтобы пользователь был направлен на нужный пост. Однако, это не сработало. Любая помощь будет очень признательна.

all_posts.html

    {% extends "base.html" %}
{% block content %}
<div class="container">
  <h1>Blog Posts</h1>
</div>
<div class="container">
 {% for blog_post in object_list %}
 <table class="table table-striped">
   <ul class="list-group">
     <li><a class="btn btn-primary" href="{% url 'blog_app:view' pk=blog_post.pk %}">{{ blog_post.post_title }}</a></li>
   </ul>
</table>
 {% endfor %}
</div>
{% endblock %}

modles.py

from django.db import models

# Create your models here.
class Blog_Post(models.Model):
    slug = models.SlugField(max_length=1000, editable=False, null=True)
    post_title = models.CharField(max_length=100, editable=True, blank=False, null=True)
    blog_content = models.TextField(max_length=10000, blank=False, editable=True, null=True)
    files = models.FileField(blank=True, null=True, upload_to=True)
    date = models.DateTimeField(blank=False, null=True, auto_now=True, editable=False)
    likes = models.IntegerField(blank=True, null=True, editable=False)

urls.py

    from django.urls import path
from . import views

app_name = "blog_app"

urlpatterns = [
    path('create/', views.create_blog_post.as_view(), name='create'),
    path('view/(?P<pk>\d+)/', views.view_blog_post.as_view(), name='view'),
    path('all_posts/', views.all_blog_posts.as_view(), name='all'),
    path('delete/<slug:slug>', views.delet_blog_post.as_view(), name='delete')
]

path предназначен для конвертеров типа slug, str, int, для работы с regex нужен re_path

вы можете просто переопределить его как "view/<int:pk>/"

    {% extends "base.html" %}
    {% block content %}
    <div class="container">
    <h1>Blog Posts</h1>
    </div>
    <div class="container">
    {% for blog_post in object_list %}
    <table class="table table-striped">
    <ul class="list-group">
        <li><a class="btn btn-primary" href="{% url 'blog_app:view' pk=blog_post.pk %}">{{ blog_post.post_title }}</a></li>
    </ul>
    </table>
    {% endfor %}
    </div>
    {% endblock %}

я думаю, что проблема в этой строке

 <li><a class="btn btn-primary" href="{% url 'blog_app:view' pk=blog_post.pk %}">

когда вы отправляете данные в теге url, вы не присваиваете их праметарам, правильная строка будет такой :

     <li><a class="btn btn-primary" href="{% url 'blog_app:view' blog_post.pk %}">
Вернуться на верх