Estoy escribiendo una Django base de aplicación para realizar un seguimiento de los objetos (Objekt) y sus tareas de mantenimiento. Objekts puede ser vinculado a una ubicación.
Ubicación (0/1) --- (n) Objekt (1) --- (n) la Tarea
Ubicación, Objekt y Tarea de todos tener un campo de estado con los siguientes valores:
RED = "red"
YELLOW = "yellow"
GREEN = "green"
STATUS = [
(RED, "Overdue tasks"),
(YELLOW, "Pending tasks"),
(GREEN, "All good"),
]
Quiero que el mapa de Ubicación de marcador cambia de color según el estado de los relacionados con la Objekts y ultimatelly Tareas.
He tratado de seguir django mejores prácticas y crear un modelo de la grasa.
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
Pero de alguna manera no estoy seguro acerca de mi concepto aquí... ¿Cómo puede una actualización en la Tarea de realizar una actualización en la Objekt. ¿Y cómo la Objekt más desencadenar la actualización sobre la Ubicación si es necesario en absoluto?