django模板url标记导致超出最大递归错误

时间:2013-07-23 14:58:24

标签: python django django-templates mako django-socialauth

我正在使用django 1.5.1和django social auth进行社交登录。要获取facebook登录网址,我使用此

from django.template import Template, Context 
facebook_url = Template("{% url 'socialauth_begin' 'facebook' %}").render(Context())

仅在下面收到错误。

Template error:
In template <unknown source>, error at line 1
maximum recursion depth exceeded
1 :  {% url 'socialauth_begin' 'facebook' %} 

它在我的生产服务器和本地开发盒上工作正常,而python和django和django社交认证版本看起来是一样的。我试图弄清楚某些库的语法是否有变化,其版本在我的测试服务器上可能有所不同。


TRACEBACK:

Request Method: GET
Request URL: <<MYSERVERURL>>

Django Version: 1.5.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'djcelery',
 'djcelery_email',
 'social_auth',
 'myapp',
 'postman',
 'storages')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'djangomako.middleware.MakoMiddleware',
 'myapp.myappmiddleware.MYAPPContextMiddleware')


Template error:
In template <unknown source>, error at line 1
   maximum recursion depth exceeded
   1 :  {% url 'socialauth_begin' 'facebook' %} 

Traceback:
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  121.                             response = middleware_method(request, e)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/ec2-user/myapppy/myapp/usercontext.py" in _wrapped_func
  282.                 return func(request, *args, **kwargs)  
File "/home/ec2-user/myapppy/myapp/pageviews.py" in usersignin
  58.         facebook_url = Template("{% url 'socialauth_begin' 'facebook' %}").render(Context())
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/template/base.py" in render
  140.             return self._render(context)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/template/base.py" in _render
  134.         return self.nodelist.render(context)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/template/base.py" in render
  830.                 bit = self.render_node(node, context)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/template/debug.py" in render_node
  74.             return node.render(context)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/template/defaulttags.py" in render
  411.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse
  496.     return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
  382.         possibilities = self.reverse_dict.getlist(lookup_view)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse_dict
  297.             self._populate()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  274.                     for name in pattern.reverse_dict:
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse_dict
  297.             self._populate()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  286.                 lookups.appendlist(pattern.callback, (bits, p_pattern, pattern.default_args))
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/urlresolvers.py" in callback
  230.         self._callback = get_callable(self._callback_str)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/utils/functional.py" in wrapper
  29.         result = func(*args)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/core/urlresolvers.py" in get_callable
  97.             mod = import_module(mod_name)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/home/ec2-user/myapppy/postman/views.py" in <module>
  24. from postman.forms import WriteForm, AnonymousWriteForm, QuickReplyForm, FullReplyForm
File "/home/ec2-user/myapppy/postman/forms.py" in <module>
  28. class BaseWriteForm(GenericForms.ModelForm):
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documents.py" in __new__
  307.         opts = new_class._meta = ModelFormOptions(getattr(new_class, 'Meta', None))
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documents.py" in __init__
  283.             self.document._meta = DocumentMetaWrapper(self.document)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()

<<<REPEATS>>>>>
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  97.                 f.document_type._meta = DocumentMetaWrapper(f.document_type)
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in __init__
  71.         self._setup_document_fields()
File "/home/ec2-user/.virtualenvs/MYAPP/lib/python2.7/site-packages/mongodbforms/documentoptions.py" in _setup_document_fields
  96.             if isinstance(f, ReferenceField) and not isinstance(f.document_type._meta, DocumentMetaWrapper):
File "/home/ec2-user/.virtualenvs/MYAPP/lib64/python2.7/abc.py" in __instancecheck__
  132.         if subclass is not None and subclass in cls._abc_cache:

Exception Type: RuntimeError at /signin
Exception Value: maximum recursion depth exceeded

UPDATE:

似乎django-postman模块导致了这个问题。评论说摆脱了这个问题。仍然不确定为什么它在开发盒和生产服务器上工作,而不是在测试服务器上。这是一个临时修复,因为我将来需要django-postman模块,但现在我已经解锁了自己。

0 个答案:

没有答案