(Django версия 2. +)
Я хочу реализовать метод copy()
внутри моей модели BlogPost
, который:
создатьполная копия этой модели (объекта) со следующими характеристиками:
Скопировать весь пост со всеми его комментариями
Установить датусоздание для скопированной даты и времени
Наконец, верните новый пост в блоге (скопировано) id
Мои модели:
from django.db import models
from django.utils import timezone
from copy import copy, deepcopy
class Author(models.Model):
name = models.TextField(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(default=timezone.now)
def copy(self):
pass
class Comment(models.Model):
blog_post = models.ForeignKey(BlogPost, on_delete=models.CASCADE)
text = models.CharField(max_length=500)
Например, у нас есть:
- Один автор с именем 'Джо'
- Один пост с date_created '7 октября'
- И 3 комментария по этому поводуpost
После использования метода копирования для этого поста:
у нас есть один автор с 2 постами и 6 комментариями (каждый пост имеет 3 отдельных комментария)