2012-09-19 25 views
1

我使用django-taggit来标记我的记录。将标签复制到复制的Django对象

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

,而不是添加标签的对象:

new_obj.tags.add(tag) 

我加入了新对象的标签:

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