models.py
------------------------------------------------------------
class identity(models.Model):
...
def getStatus(self):
if (identitytoken.objects.filter(Q(identity=self.pk) &
(Q(expires__isnull=True) |
Q(expires__gte=datetime.date.today()))).count()==0):
return "inactive"
else:
return "active"
class identitytoken(models.Model):
identity = models.ForeignKey("identity")
expires = models.DateField(null=True, blank=True)
...
class person(identity):
person_identity= models.OneToOneField("identity", primary_key=True, parent_link=True)
...
admin.py
------------------------------------------------------------
class StatusFilter(SimpleListFilter):
title = "Status"
parameter_name = 'status'
def lookups(self, request, model_admin):
return (
("active", "active"),
("inactive", "inactive"),
)
def queryset(self, request, queryset):
if self.value() == u"active":
return queryset.filter()
if self.value() == u"inactive":
return queryset.filter()
return queryset
class PersonAdmin(admin.ModelAdmin):
fields = ("name", "getStatus", ...)
list_display = ("name", "getStatus", )
list_filter = (StatusFilter, )
readonly_fields = ("getStatus", )
0 comments:
Post a Comment