这是我的模型。我想用copy
函数从我的模型中复制一份。并将created_time
更新到这个时间,最终返回id
后的内容。
from django.db import models
from django.utils import timezone
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)
date_created = models.DateTimeField(auto_now_add=True)
def copy(self):
blog = BlogPost.objects.get(pk=self.pk)
comments = blog.comment_set.all()
blog.pk = None
blog.save()
for comment in comments:
comment.pk = None
comment.blog_post = blog
comment.save()
return blog.id
class Comment(models.Model):
blog_post = models.ForeignKey(BlogPost, on_delete=models.CASCADE)
text = models.CharField(max_length=500)
我还希望复制功能,使从职位和评论的副本,你能帮我纠正我的代码和更新时间在我的功能。
1条答案
按热度按时间v9tzhpje1#
直觉
您希望将新复制的博客文章的
date_created
更新为timezone.now()
,而不是旧博客文章时间的date_created
,对吗?我猜它没有更新的原因,是因为当你做
blog.pk = None
,blog.date_created
仍然存在,所以即使你做blog.save()
,blog.date_created
仍然是旧的值。溶液