Сохранение тегов (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