Всем привет. Сразу к делу. Есть модели:
class Tag(models.Model):<br>
name = models.CharField(verbose_name=u'Tag', max_length=200, unique=True)<br><br>
class Entry(models.Model):<br>
title = models.CharField(verbose_name=u'Entry title', max_length=200)<br>
# всякие поля<br>
tags_string = models.CharField(verbose_name=u'Tags', max_length=200, blank=True)<br>
tags = models.ManyToManyField(Tag, null=True, blank=True)<br>
В админке заполняется поле tags_string, которое на выходе выглядит например так: «cat, dog, pig»
Затем, я разбираю строку и добавляю тэги в таблицу Tag.
Задача в том, чтобы добавить связь между Entry и Tag. Другими словами, чтобы у поста были тэги.
Пытаюсь решить следующим образом:
def save(self):<br>
super(Entry, self).save()<br>
if self.tags_string:<br>
for tag in tags_string.split(","):<br>
t = Tag.objects.create(name=tag.lstrip())<br>
self.tags.add(t)<br>
Тэги добавляются в таблицу, но таблица связей остается пуста.
Точно такая же операция, выполненная через джанговский shell срабатывает на ура. Я так полагаю, с методом save() не всё так просто. Есть идеи?
P.S. Самое интересное что связи не добавляются даже если написать вот так:
def save(self):<br>
super(Entry, self).save()<br>
self.tags.add(3) # где 3 - id тэга.<br>
хотя через тот же shell всё ок.
Заранее благодарю за помощь.