from django.contrib.contenttypes.models import ContentType
from django.db import models

class LogItem(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.CharField(max_length=255)
    pub_date = models.DateTimeField('date')

    class Meta:
        ordering = ['-pub_date']
        unique_together = (('content_type', 'object_id'),)

    def get_content_object(self):
        from django.core.exceptions import ObjectDoesNotExist
        try:
            return self.content_type.get_object_for_this_type(pk=self.object_id)
        except ObjectDoesNotExist:
            return None

    class Admin:
        date_hierarchy = 'pub_date'
        list_display = ('get_content_object', 'pub_date')
        list_filter = ('pub_date', 'content_type',)
