Задать вопрос
@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
  • Вопрос задан
  • 427 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 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...
Ответ ищется достаточно просто, от сторонних библиотек до простого решение при сохранении
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽