【发布时间】:2021-09-10 20:44:43
【问题描述】:
我想复制 blogpost 模型,我已经考虑了外键关系,但在 blog_copy 和 blog_author_copy 的测试中仍然失败。谁能帮帮我?
class Author(models.Model):
name = models.CharField(max_length=50)
class BlogPost(models.Model):
title = models.CharField(max_length=250)
body = models.TextField()
author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='blog_posts')
date_created = models.DateTimeField(auto_now_add=True)
def copy(self):
new = BlogPost.objects.get(pk=self.pk)
new.pk = None
new.id = None
new.date_created = datetime.now()
# new.author.blog_posts.add(new)
authors = Author.objects.all()
for author in authors:
if self.author == author:
author.blog_posts.add(new)
new.save()
old = BlogPost.objects.get(pk=self.pk)
for comment in old.comments.all():
comment.pk = None
comment.blog_post = new
comment.save()
new.comments.add(comment)
new.save()
class Comment(models.Model):
blog_post = models.ForeignKey(BlogPost, on_delete=models.CASCADE, related_name='comments')
text = models.CharField(max_length=500)
【问题讨论】:
标签: python django django-models copy deep-copy