Отображать цвет фона в зависимости от условий в шаблоне Django
Рассмотрим цветовые коды
красный - #FFDADA янтарный - #FFC200 зелёный - #90EE90 золотой - #FFFF00
вот мой index.html
<td style="background-color:{% if qualification.is_past_due %}#FFDADA{% elif qualification.is_past_month %}#FFC200{% elif not qualification.validated %} #FFFF00 {% else %}#90EE90{% endif %};"
Вот если
qualification is is_past_due = red
if qualification is is_past_month (near to expire 30 days) = amber
if qualification date is in future and qualification.validate = Green
if qualification.expiry date is in future and not qualification.validate = Gold
if no expiry_date the white
рассмотрим мой models.py
class Qualification(models.Model):
expiry_date = models.DateField(null=True,verbose_name="Expiry Date", blank=True)
validated = models.BooleanField(default=False)
def is_past_due(self):
try:
date1 = datetime.combine(self.expiry_date, datetime.min.time())
date2 = pytz.utc.localize(date1)
return date2 and timezone.now().date() > localtime(date2, timezone=self.user.get_user_timezone()).date()
except:
return ''
def is_past_month(self):
try:
expiry_date = self.expiry_date+relativedelta(months=-1)
date1 = datetime.combine(expiry_date, datetime.min.time())
date2 = pytz.utc.localize(date1)
return date2 and timezone.now().date() > localtime(date2, timezone=self.user.get_user_timezone()).date()
except:
return ''
def today_date(self):
try:
today = timezone.now().date()
return today
except:
return ''
class Meta:
ordering = ['expiry_date']
Рассмотрим записи моей базы данных как
id expiry_date validated
1 08-11-2019 1 (# alredy expired so red)
2 24-11-2021 0 (# near to expiry so amber )
3 22-12-2021 1 (# future date and validated(1) so green )
4 28-12-2021 0 (# future date and not validated(0) so gold )
В настоящее время в моем коде я проверяю только то, подтвержден он или нет, но теперь мне нужно проверить будущий срок действия и подтверждение также