Merge branch 'hotfix/oberlin_references' into taggit
[philo.git] / philo / templatetags / collections.py
index 62d6138..e9db2bd 100644 (file)
@@ -1,17 +1,6 @@
 """
 The collection template tags are automatically included as builtins if :mod:`philo` is an installed app.
 
-.. templatetag:: membersof
-
-membersof
----------
-
-Given a collection and a content type, sets the results of :meth:`collection.members.with_model <.CollectionMemberManager.with_model>` as a variable in the context.
-
-Usage::
-
-       {% membersof <collection> with <app_label>.<model_name> as <var> %}
-
 """
 
 from django import template
@@ -37,9 +26,14 @@ class MembersofNode(template.Node):
                return ''
 
 
-def do_membersof(parser, token):
+@register.tag
+def membersof(parser, token):
        """
-       {% membersof <collection> with <app_label>.<model_name> as <var> %}
+       Given a collection and a content type, sets the results of :meth:`collection.members.with_model <.CollectionMemberManager.with_model>` as a variable in the context.
+       
+       Usage::
+       
+               {% membersof <collection> with <app_label>.<model_name> as <var> %}
        
        """
        params=token.split_contents()
@@ -53,7 +47,7 @@ def do_membersof(parser, token):
        
        try:
                app_label, model = params[3].strip('"').split('.')
-               ct = ContentType.objects.get(app_label=app_label, model=model)
+               ct = ContentType.objects.get_by_natural_key(app_label, model)
        except ValueError:
                raise template.TemplateSyntaxError('"%s" template tag option "with" requires an argument of the form app_label.model (see django.contrib.contenttypes)' % tag)
        except ContentType.DoesNotExist:
@@ -62,7 +56,4 @@ def do_membersof(parser, token):
        if params[4] != 'as':
                raise template.TemplateSyntaxError('"%s" template tag requires the fifth parameter to be "as"' % tag)
        
-       return MembersofNode(collection=params[1], model=ct.model_class(), as_var=params[5])
-
-
-register.tag('membersof', do_membersof)
\ No newline at end of file
+       return MembersofNode(collection=params[1], model=ct.model_class(), as_var=params[5])
\ No newline at end of file