[英]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.