Ошибка при автосоздании slug в моделях django

Это моя модель:

class post (models.Model):
    title = models.CharField(max_length=200)
    post = models.CharField(max_length=75000)
    picture = models.URLField(max_length=200, default="https://i.ibb.co/0MZ5mFt/download.jpg")
    show_date = models.DateTimeField()
    slug = models.SlugField(editable=False)
    
    def save(self, *args, **kwargs):
        to_slug = f"{self.title} {self.show_date}"
        self.slug = slugify(to_slug)
        super(Job, self).save(*args, **kwargs)

Когда я запускаю свой сайт и пытаюсь добавить элемент с портала администратора, я получаю следующее:

NameError at /admin/blog/post/add/
name 'Job' is not defined

Я получил часть об автозагрузке из здесь, что такое 'Job', который я должен определить?

Ваш класс post, а не Job, поэтому ваш вызов super(…) должен быть super(post, self), но начиная с , вам не нужно указывать имя, поэтому вы можете работать с:

class Post(models.Model):
    title = models.CharField(max_length=200)
    post = models.CharField(max_length=75000)
    picture = models.URLField(max_length=200, default='https://i.ibb.co/0MZ5mFt/download.jpg')
    show_date = models.DateTimeField()
    slug = models.SlugField(editable=False)
    
    def save(self, *args, **kwargs):
        to_slug = f"{self.title} {self.show_date}"
        self.slug = slugify(to_slug)
        super().save(*args, **kwargs)

Примечание: Модели в Django пишутся в PascalCase, а не snake_case, поэтому вы можете переименовать модель из post в Post.


Note: You can make use of django-autoslug [GitHub] to automatically create a slug based on other field(s).


Note: Normally you should not change slugs when the related fields change. As is written in the article Cool URIs don't change [w3.org], URIs are not supposed to change, since these can be bookmarked. Therefore the slug should only be created when creating the object, not when you change any field on which the slug depends.

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