fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
basic tag filtering tests
[wolnelektury.git]
/
apps
/
newtagging
/
models.py
diff --git
a/apps/newtagging/models.py
b/apps/newtagging/models.py
index
d3a386b
..
2055ec3
100644
(file)
--- a/
apps/newtagging/models.py
+++ b/
apps/newtagging/models.py
@@
-1,8
+1,12
@@
+# -*- coding: utf-8 -*-
"""
Models and managers for generic tagging.
"""
"""
Models and managers for generic tagging.
"""
+
# Python 2.3 compatibility
# 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 sets import Set as set
from django.contrib.contenttypes import generic
@@
-10,6
+14,7
@@
from django.contrib.contenttypes.models import ContentType
from django.db import connection, models
from django.utils.translation import ugettext_lazy as _
from django.db.models.base import ModelBase
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
qn = connection.ops.quote_name
@@
-107,7
+112,7
@@
class TagManager(models.Manager):
WHERE %(tagged_item)s.content_type_id = %(content_type_id)s
%%s
%(extra_where)s
WHERE %(tagged_item)s.content_type_id = %(content_type_id)s
%%s
%(extra_where)s
- GROUP BY %(tag)s.id, %(tag)s.name
+ GROUP BY %(tag
_columns)s, %(tag
)s.id, %(tag)s.name
%%s
ORDER BY %(tag)s.%(ordering)s ASC""" % {
'tag': qn(self.model._meta.db_table),
%%s
ORDER BY %(tag)s.%(ordering)s ASC""" % {
'tag': qn(self.model._meta.db_table),
@@
-474,8
+479,11
@@
def create_intermediary_table_model(model):
unique_together = (('tag', 'content_type', 'object_id'),)
def obj_unicode(self):
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__,
# Set up a dictionary to simulate declarations within a class
attrs = {
'__module__': model.__module__,