Сохранение тегов (taggit) при публикации страницы в django-cms
20 апреля 2015 г. 11:53
В документации по taggit имеется пример сохранения тегов через форму, но нет примера сохранения в модели (например, для плагина django-cms)... Но это и понятно. Сохранение связи многие-ко-многим происходит обычным образом (в django документации есть хорошие примеры). Я лишь покажу, как сохранить теги при публикации страницы в django-cms.
Копирование связей происходит в методе copy_relations(self, old_instance), например:
# models.py
class Picture(CMSPlugin):
pic = models.ImageField('Картинка', upload_to='pictures', max_length=255)
tags = TaggableManager(blank=True)
def copy_relations(self, old_instance):
self.tags.clear()
for tag in old_instance.tags.all():
self.tags.add(tag.name)
self.save()
Для сохранения формы в views.py пишем следующее (взято с документации):
# views.py
if request.method == "POST":
form = MyFormClass(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.save()
# Without this next line the tags won't be saved.
form.save_m2m()
Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0