Обратные аргументы '(8, '')' не найдены - как передать slug

Я настраиваю сжатие изображений.

def compress(image):
                im = Image.open(image)
                # create a BytesIO object
                im_io = BytesIO() 
                #resize image
                im = im.convert("RGB")
                im = im.save(im_io,'JPEG', quality=70, optimize=True) 
                # create a django-friendly Files object
                new_image = File(im_io, name=image.name)
                return new_image

class Post(models.Model):
    slug = models.SlugField(max_length=100, allow_unicode=True, blank=True)
    image = models.ImageField(storage=PublicMediaStorage(), upload_to=path_and_rename, validators=[validate_image])

    def save(self, *args, **kwargs):
        #image compression start
        if self.image:
            # call the compress function
            new_image = compress(self.image)
            # set self.image to new_image
            self.image = new_image
        #image compression end 
        super(Post,self).save(*args, **kwargs)

Когда пользователь отправляет форму, я получаю эту ошибку

Reverse for 'post-detail' with arguments '(8, '')' not found. 1 pattern(s) tried: ['post/(?P<pk>[0-9]+)/(?P<slug>[-a-zA-Z0-9_]+)/$']

Я полагаю, что ошибка вызвана этой строкой super(Post,self).save(*args, **kwargs), поскольку не передается slug, однако я не могу понять, как передать slug.

урлы

path('', views.home, name='blog-home'),
path('user/<str:pk_user>/', views.UsersCarsPosts, name='user-posts'),
path('post/new/', views.createPostView, name='post-create'),    
path('post/<int:pk>/<slug:slug>/', views.DetailPostView, name='post-detail'),
path('post/<int:pk>/<slug:slug>/update/', PostUpdateView.as_view(), name='post-update'),
path('post/<int:pk>/<slug:slug>/delete/', PostDeleteView.as_view(), name='post-delete'),

(?P<slug>[-a-zA-Z0-9_]+ означает, что slug должен быть строкой из одного или нескольких символов. Однако вы передаете ''. Вам нужно выяснить, почему slug пустой.

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