Nesneleri (Objekt) ve bakım görevlerini takip etmek için Django tabanlı bir uygulama yazıyorum. Nesneler bir konuma bağlanabilir.
Konum (0/1) --- (n) Nesne (1) --- (n) Görev
Konum, Nesne ve Görevin tümü aşağıdaki değerlere sahip bir durum alanına sahiptir:
RED = "red"
YELLOW = "yellow"
GREEN = "green"
STATUS = [
(RED, "Overdue tasks"),
(YELLOW, "Pending tasks"),
(GREEN, "All good"),
]
Konum haritası işaretleyicisinin, ilgili Nesnelerin ve ültimatom Görevlerinin durumuna bağlı olarak rengini değiştirmesini istiyorum.
Django'nun en iyi uygulamalarını takip etmeye ve bir fat modeli oluşturmaya çalıştım.
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
Ama bir şekilde buradaki konseptimden emin değilim... Görevdeki bir güncelleştirme, ilgili Nesnedeki bir güncelleştirmeyi nasıl tetikleyebilir? Ve Nesne, gerektiğinde Konum güncellemesini nasıl daha da tetikleyecektir?