python - 我如何从 django 中的博客和评论中复制?

标签 python django model copy save

我想从我的博客对象及其评论中复制一份。我编写了一些代码,它适用于博客实例,但不复制其评论。

这是我的模型:

class Blog(models.Model):
    title = models.CharField(max_length=250)
    body = models.TextField()
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    date_created = models.DateTimeField(auto_now_add=True)

class Comment(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    text = models.CharField(max_length=500)

这是我在博客模型中的复制功能:

    def copy(self):
        blog = Blog.objects.get(pk=self.pk)
        # comments_query_set = blog.comment_set.all()

        # comments = []
        # for comment in comments_query_set:
        #     comments.append(comment)


        blog.pk = None
        blog.save()

        # blog.comment_set.add(comments)


        return blog.id

你能帮我吗? :(

最佳答案

您必须手动复制每条评论:

def copy(self):
    blog = Blog.objects.get(pk=self.pk)
    comments = blog.comment_set.all()

    blog.pk = None
    blog.save()

    for comment in comments:
        comment.pk = None
        comment.blog = blog
        comment.save()

    return blog.id

关于python - 我如何从 django 中的博客和评论中复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57099749/

相关文章:

python - 内存使用实例属性的函数

python - 带有实例的模型不会保存到数据库,但 Django 中没有错误消息

python - 如何在 Django 中将 Http Post 参数的 Json 值转换为 Python Dict?

python - TemplateDoesNotExist 在项目文件夹 django 1.8

css - (CSS3 flex box) 指定多个框行不起作用

python - 当迭代次数增加时,Cupy 变得更慢

包含双引号字符的python字符串

django - SMTPServerDisconnected : Connection unexpectedly closed: timed out

c++ - Qt 模型 View 编程。 QAbstractItemModel 和 QAbstractListModel。索引()和父级()

python - 如何在 Django 中定义跨年、月的日期范围?