+# -*- coding: utf-8 -*-
"""
Models and managers for generic tagging.
"""
+
# Python 2.3 compatibility
-if not hasattr(__builtins__, 'set'):
+try:
+ set
+except NameError:
from sets import Set as set
from django.contrib.contenttypes import generic
from django.db import connection, models
from django.utils.translation import ugettext_lazy as _
from django.db.models.base import ModelBase
+from django.core.exceptions import ObjectDoesNotExist
qn = connection.ops.quote_name
unique_together = (('tag', 'content_type', 'object_id'),)
def obj_unicode(self):
- return u'%s [%s]' % (self.content_type.get_object_for_this_type(pk=self.object_id), self.tag)
-
+ try:
+ return u'%s [%s]' % (self.content_type.get_object_for_this_type(pk=self.object_id), self.tag)
+ except ObjectDoesNotExist:
+ return u'<deleted> [%s]' % self.tag
+
# Set up a dictionary to simulate declarations within a class
attrs = {
'__module__': model.__module__,