![](/img/trans.png)
[英]How to create a model in Django based on the instance of another model, but filtered
[英]How to copy a model instance to another model based on attribute value in Django
仅当且仅当Tasks对象中的progress属性设置为“ completed”时,我才想将模型实例从Tasks类复制到CompletedTasks类中。 我想从Tasks类中删除该对象。 当用户编辑任务并输入完成进度时,我如何设置它自动执行此操作
我尝试了几种不同的方法,但是我不确定该如何进行。 下面的函数completedTasks(self,id)是我目前拥有的,但是它什么也没做。
我在views.py中也有一个create和update任务功能,将所需的功能放在这里而不是在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):
您的看法可以像这样
def completedTasks(self, id):
instance = Tasks.objects.get(pk = id)
if(instance.progress == "completed"):
temp = CompletedTasks(**instance.__dict__)
temp.id = None # to force adding new record
temp.save()
instance.delete()
但是从设计的角度来讲,您无需将Task移到completeTask上,基于状态的过滤就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.