管理者で強調表示するには、次のようなものを使用できます (これはhttps://docs.djangoproject.com/en/1.2/ref/contrib/admin/から入手できます):
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
expiry_date = models.DateTimeField()
def colored_name(self):
if datetime.datetime.now() >= self.expiry_date:
return '<span style="color: red;">%s %s</span>' % (self.first_name, self.last_name)
colored_name.allow_tags = True
class PersonAdmin(admin.ModelAdmin):
list_display = ('colored_name', 'first_name', 'last_name')
これにより、管理インターフェイスで 1 つの列のみが強調表示されますが、これに気付くことができます。
警告するには、管理コマンドを作成して cron から実行する必要があります。
プロジェクト/アプリ/管理/コマンド/check_expired.py:
# -*- coding: utf-8 -*-
from django.core import management
from django.core.mail import mail_admins
class Command(BaseCommand):
def inner_run(self, *args, **options):
expired_items = Model.objects.filter(expiry_date__lte=datetime.datetime.now())
message = some_message_formatter(expired_items)
mail_admins(subject='Alerts on my Project!', message=message)
クローン:
8 3 */15 * * cd /path/to/project && echo 'Activate virtual env if needed' && PYTHONPATH='Additional_python_path' DJANGO_SETTINGS_MODULE=your_project.settings django-admin.py check_expired