Как перенести данные из одного списка в другой в Django?
Я делаю небольшой список дел, я застрял в файле views.py, там есть дела, задачи в процессе выполнения и выполненные задачи. задачи, задачи в процессе выполнения и выполненные задачи, я хочу переместить задачу из из списка задач to-do в список задач in-progress, я не могу понять, как удалить данные в задаче to-to и сделать новые данные такими же, как в задаче to-do в незавершенной задаче одновременно. Было бы здорово, если бы кто-нибудь может помочь, я совсем новичок в Django. Спасибо.
'''
models.py
class Todo(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
name = models.CharField(max_length=20)
start_date = models.DateTimeField(default=datetime.datetime.now)
due_date = models.DateTimeField(default=datetime.datetime.now)
def __str__(self):
return self.text[:60] + "..."
class Progress(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
name = models.ForeignKey(Todo, on_delete=models.CASCADE)
start_date = models.DateTimeField(default=datetime.datetime.now)
due_date = models.DateTimeField(default=datetime.datetime.now)
def __str__(self):
return self.text
'''
Я бы предложил иметь только один класс, с дополнительной строкой для того, находятся ли они в процессе выполнения или нет. Это избавит вас от необходимости создавать и удалять объекты django и DB снова и снова, когда на протяжении всего жизненного цикла они содержат одну и ту же информацию. Вы можете достичь этого несколькими способами: поле с плавающей шкалой для отслеживания процента завершенности или просто булево значение. Для простоты примера я буду использовать булево.
`class Todo(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
name = models.CharField(max_length=20)
start_date = models.DateTimeField(default=datetime.datetime.now)
due_date = models.DateTimeField(default=datetime.datetime.now)
in_progress = models.BooleanField(default=False)
def __str__(self):
return self.name`
Затем в представлениях вы можете запросить те задачи, которые находятся или не находятся в процессе выполнения. Как упоминалось выше, вы также можете использовать поле float и затем выполнить поиск всего, что больше 0.