Почему в адресной строке не отображается поле slug?

Я новичок в Django. Я столкнулся с ошибкой при отработке добавления поля slug в модель. после запуска программы она не работает. Браузер не выдает никаких ошибок. Я написал код ниже, пожалуйста, посмотрите и кто-нибудь поможет мне? Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы. Спасибо за помощь.

models.py

from django.db import models
from django.db.models.signals import pre_save
from django.dispatch import receiver
from django.utils.text import slugify
import string,random
from temp1.util import unique_slug_generator


STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)

class Post(models.Model):
title = models.CharField(max_length = 250)
slug = models.SlugField(max_length = 250, null = True,                                                     
 blank = True)
text = models.TextField()
published_at = models.DateTimeField(auto_now_add = True)
updated = models.DateTimeField(auto_now = True)

status = models.CharField(max_length = 10, choices =     
 STATUS_CHOICES,
         default ='draft')


class Meta:
ordering = ('-published_at', )

def __str__(self):
return self.title


@receiver(pre_save, sender=Post)
def pre_save_receiver(sender, instance, *args, **kwargs):
if not instance.slug:
    instance.slug = unique_slug_generator(instance)

urls.py

from django.urls import path
from .views import detail
urlpatterns = [
path("posts/",detail,name="home")

]

util.py

import string, random
from django.db.models.signals import pre_save
from django.dispatch import receiver
from django.utils.text import slugify

def random_string_generator(size = 10, chars =     
string.ascii_lowercase + string.digits):
 return ''.join(random.choice(chars) for _ in range(size))

def unique_slug_generator(instance, new_slug = None):
 if new_slug is not None:
  slug = new_slug
 else:
  slug = slugify(instance.title)
 Klass = instance.__class__
 max_length = Klass._meta.get_field('slug').max_length
 slug = slug[:max_length]
 qs_exists = Klass.objects.filter(slug = slug).exists()

 if qs_exists:
  new_slug = "{slug}-{randstr}".format(
   slug = slug[:max_length-5], randstr =                 
 random_string_generator(size = 4))

return unique_slug_generator(instance, new_slug = 
 new_slug)
 return slug

views.py
from django.http import HttpResponse
from .models import Post


def detail(request, slug=None):
q = Post.objects.filter(slug__iexact = slug)
if q.exists():
    q = q.first()
else:
    return HttpResponse("<h1>Post Not Found</h1>")
context = {

'post': q
}
return render(request, 'posts/details.html', context)

details.html

<!DOCTYPE HTML>
<HTML>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
 <form method="POST">
  {% csrf_token %}
  {{form.as_p}}
  <a href="/posts/{{ a.slug }}" class="btn btn-    
   primary">View</a>
  <input type="submit" value="submit">
  </form>

 </body>
 </html>
Вернуться на верх