【发布时间】:2019-07-23 13:23:50
【问题描述】:
当且仅当我的 Tasks 对象中的进度属性设置为“已完成”时,我想将我的 Tasks 类中的模型实例复制到我的 CompletedTasks 类中。我想从 Tasks 类中删除对象。当用户编辑任务并为进度完成输入时,我如何设置它以自动执行此操作
我尝试了几种不同的方法,但我不确定如何去做。下面的函数 completedTasks(self,id) 是我目前拥有的,但它什么也没做。
我的views.py 中还有一个创建和更新任务功能,将所需的功能放在那里而不是models.py 是否有意义?
class Progress(models.Model):
level = models.CharField(max_length=30)
class Tasks(models.Model):
progress = models.ForeignKey(Progress, max_length=20, on_delete=models.CASCADE)
def completedTasks(self, id):
instance = Tasks.objects.get(pk = id)
if(instance.progress == "completed"):
temp = CompletedTasks()
temp = instance
temp.save()
instance.delete()
class CompletedTasks(Tasks):
【问题讨论】:
-
对任务类使用保存后信号处理程序。
-
非常详细的答案,再说一遍。
-
很快会有人为你写一个简短的答案。
-
您说进度属性需要设置为已完成,但进度是进度类的外键。这应该是一个字符字段吗?
标签: python django model copy instance