Есть ли простой способ заполнить SlugField из CharField?
16161 просмотра
6 ответа
class Foo(models.Model):
title = models.CharField(max_length=20)
slug = models.SlugField()
Существует ли встроенный способ автоматического заполнения поля слагов на основе заголовка? Возможно в Админе и вне Админа.
Автор: ashchristopher Источник Размещён: 17.05.2019 02:50Ответы (6)
61 плюса
для администратора в Django 1.0 и выше, вам нужно использовать
prepopulated_fields = {'slug': ('title',), }
в вашем admin.py
Ваш ключ в словаре prepopulated_fields - это поле, которое вы хотите заполнить, а значение - это набор полей, которые вы хотите объединить.
За пределами администратора вы можете использовать slugify
функцию в ваших представлениях. В шаблонах вы можете использовать |slugify
фильтр.
Существует также этот пакет, который позаботится об этом автоматически: https://pypi.python.org/pypi/django-autoslug
Автор: camflan Размещён: 26.09.2008 07:516 плюса
За пределами администратора, посмотрите этот фрагмент Django . Поместите его в свой .save()
, и он будет работать с объектами, созданными программно. Внутри админа, как уже говорили другие, используйте prepopulated_fields
.
3 плюса
Для pre-1.0:
slug = models.SlugField(prepopulate_from=('title',))
должно работать просто отлично
Для 1.0 используйте camflan's
Автор: Nick Sergeant Размещён: 26.09.2008 07:442 плюса
Вы также можете использовать сигнал pre_save django, чтобы заполнить слаг за пределами кода администратора django. Смотрите документацию по сигналам Django .
Также будет полезна проверка уникальности слагов Ajax, см. Проверка уникальности слагов типа As-You-@ @ Irrational Exuberance
Автор: carefulweb Размещён: 30.09.2008 01:310 плюса
autoslug работал довольно хорошо для меня в прошлом. Хотя я никогда не пытался использовать его с приложением администратора.
Автор: Jon Lemmon Размещён: 19.09.2011 12:230 плюса
в admin.py
Автор: Aayush Bhattarai Размещён: 09.03.2019 01:24из. моделей импорт пост
Класс Slugfield (admin.ModelAdmin): prepopulated_fields = {"slug" :( "title",)}
admin.site.register (Post, ExtraField)
Вопросы из категории :
- python Обработка XML в Python
- python Как я могу использовать Python itertools.groupby ()?
- python Python: На какой ОС я работаю?
- python Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
- python Вызов функции модуля с использованием его имени (строки)
- python Звук Питона («Колокол»)
- django Использование виджетов времени / даты в Django в произвольной форме
- django Django + FCGID на Fedora Core 9 - что мне не хватает?
- django Грязные поля в джанго
- django Есть ли простой способ заполнить SlugField из CharField?
- django Захват параметров URL в запросе. GET
- django Модель limit_choices_to = {'user': user}
- slug Превратить строку в правильное имя файла?
- slug Что такое «слизняк» в Джанго?
- slug Как заставить Django slugify правильно работать со строками Unicode?
- slug PHP функция, чтобы сделать слаг (строка URL)
- slug Stug slugification в Python