我正在写一Django基础的应用程序来跟踪的对象(Objekt)及其维护的任务。 Objekts可以链接到一个位置。
位置(0/1)---(n)Objekt(1)---(n)任务
位置,Objekt和任务都有一个状态领域的值如下:
RED = "red"
YELLOW = "yellow"
GREEN = "green"
STATUS = [
(RED, "Overdue tasks"),
(YELLOW, "Pending tasks"),
(GREEN, "All good"),
]
我想要那个位置的地图的标记改变其颜色的基础上的状况有关的Objekts和ultimatelly任务。
我试图按照 它最佳做法 和创建一个胖胖的模型。
from django.db import models
from locationapp.models import Location
from taskapp.models import Task
from rules.contrib.models import RulesModel
class Objekt(RulesModel):
RED = "red"
YELLOW = "yellow"
GREEN = "green"
STATUS = [
(RED, "Overdue tasks"),
(YELLOW, "Pending tasks"),
(GREEN, "All good"),
]
name = models.CharField(max_length=200)
description = models.TextField(blank=True)
location = models.ForeignKey(
Location, on_delete=models.SET_NULL, null=True, blank=True
)
status = models.CharField(max_length=6, choices=STATUS, default=GREEN)
def set_status(self):
if Task.objects.filter(objekt=self.id).filter(status=Task.RED).exists():
self.status = Objekt.RED
elif Task.objects.filter(objekt=self.id).filter(status=Task.YELLOW).exists():
self.status = Objekt.YELLOW
else:
self.status = Objekt.GREEN
但不知怎的,我不知道关于我的概念在这里...如何可以更新上任务触发的最新相关Objekt. 和如何将Objekt进一步触发更新的位置-如果需要在所有吗?