Закрыть

Для эффективной работы на сайте используются cookie и обработка персональных данных. Пользуясь этим сайтом, вы соглашаетесь с правилами использования сайта. Подробнее

Цитата дня

Vivazzi.ru

Личный сайт Мальцева Артема

Невозможно — это всего лишь громкое слово, за которым прячутся маленькие люди. Им проще жить в привычном мире, чем найти в себе силы что-то изменить. Невозможное — это не факт. Это только мнение. Невозможное — это не приговор. Это вызов. Невозможное — это шанс проявить себя. Невозможное — это не навсегда. Невозможное возможно.

Мухаммед Али

Сохранение тегов (taggit) при публикации страницы в django-cms

20 апреля 2015 г. 7: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 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

Автор статьи

Права на использование данной статьи, расположенной на настоящей странице http://vivazzi.ru/it/save-tags-in-django-cms/:

Разрешается копировать статью с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="http://vivazzi.ru/it/save-tags-in-django-cms/">http://vivazzi.ru/it/save-tags-in-django-cms/</a>

Подробнее: Правила использования сайта

Вам нужно саморазвиваться или вы хотите зарабатывать деньги?

Или вы ищите хорошие IT сервисы или книги? Сохраните свое время и взгляните на мою подборку рекомендаций, которыми постоянно пользуюсь.
Посмотреть рекомендации

Комментариев: 0

Вы можете оставить комментарий как незарегистрированный пользователь. Но, зарегистрировавшись, вы сможете получать оповещения об ответах, а также иметь доступ к своему личному аккаунту для просмотра своих комментариев.

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте