将标签复制到复制的django对象

时间:2012-09-19 17:45:08

标签: django django-taggit deep-copy

我使用django-taggit标记我的记录。

class Action(models.Model):
    name = models.CharField("Action Name", max_length=200)
    complete = models.BooleanField(default=False, verbose_name="Complete?")

    tags = TaggableManager()

我尝试制作记录的精确副本,直到与任务相关联的标记。

new_obj = deepcopy(self)
new_obj.id = None
new_obj.save()

运行此代码后,副本完全正确,但没有附属标记。如何从" self"复制所有标签?到new_obj?

1 个答案:

答案 0 :(得分:1)

而不是将标签添加到对象:

new_obj.tags.add(tag)

我将新对象添加到Tag:

for tag in self.tags.all():
    tag_object = TaggedItem(content_object = new_obj, tag = tag)
    tag_object.save()