У меня есть модель, чтобы сохранить пользовательский пост:Джанго администратор не добавлять объектов в manytomany полей
class Tag(models.Model):
name = models.CharField(max_length=255, unique=True)
class Post(models.Model):
user = models.ForeignKey(User)
body = models.TextField()
tags = models.ManyToManyField(Tag, blank=True)
pub_date = models.DateTimeField(default=timezone.now)
activity = GenericRelation(Activity, related_query_name="posts")
Теперь, когда я сохраняю новый объект Post, я хотел бы сохранить тело объекта Поста в сообщении объекта, теги. Я делаю это с помощью сигналов:
@receiver(post_save, sender=Post)
def create(sender, instance, **kwargs):
if kwargs.get('created', True):
tag_list = [Tag.objects.create(name=word) for word in instance.body.split()]
print "from signals!: instance body: %s" % instance.body
instance.tags.add(*tag_list)
if not kwargs.get('created', False):
tag_list = [Tag.objects.create(name=word) for word in instance.body.split()]
print "already signals!: instance body: %s" % instance.body
instance.tags.add(*tag_list)
Так что, если я сохраню новый объект Post в админ, это создать новый объект Post, также создавать объекты тегов внутри tag_list. Но ... он не добавляет теги из tags_list в многое поле объекта (т. Е. Post_object.tags).
Однако, если я создаю новый объект Post из оболочки, он создает новый объект Post, создает объекты тега внутри tag_list, а также добавляет теги в поле тега post.objects.
Что я здесь делаю неправильно? Кажется, проблема в администраторе django.
Оба 'if's указывают на той же логике :) – ruddra
@ruddra Мой вопрос совершенно другой. – Robin
извините моя ошибка. Удалены – ruddra