Ошибка при автосоздании 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), но начиная с python-3.x, вам не нужно указывать имя, поэтому вы можете работать с:
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, поэтому вы можете переименовать модель из
вpostPost.
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.