@Vova135798

Как сделать чтобы slug повторял title?

Подскажите пожалуйста, как сделать, чтобы при заполнении поля title, slug заполнялся сам
class Book(models.Model):
    title = models.CharField(max_length=155, verbose_name='Название книги')
    summary = models.TextField(blank=True, verbose_name='Краткое описание')
    photo = models.ImageField(upload_to='books/%m/%d', null=True, blank=True)
    genre = models.ForeignKey(Genre, on_delete=models.CASCADE, null=True)
    author = models.ForeignKey(Author, on_delete=models.CASCADE, null=True)
    creation_date = models.DateField(blank=True, verbose_name='Дата создания')
    slag = models.SlugField(unique=True)

    def __str__(self):
        return self.title
  • Вопрос задан
  • 410 просмотров
Решения вопроса 1
EtherDaler
@EtherDaler
Еще зеленый
from django.utils.text import slugify
class Book(models.Model):
    ...
    def save(self, *args, **kwargs):
        self.slug = slugify(self.title)
        super(Book, self).save(*args, **kwargs)


Я еще делаю так в админке
class BooksAdmin(admin.ModelAdmin):
    ...
    prepopulated_fields = {'slug': ('title',)}
    ...
admin.site.register(Book, BooksAdmin)

Фича в админке сразу автоматически меняет slug при вводе текста в поле title
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Mi11er
@Mi11er
A human...
Ответ ищется достаточно просто, от сторонних библиотек до простого решение при сохранении
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы