python - Django 枪兽 : Error when calling the metaclass bases

标签 python django metaclass gunicorn

我有一个 Django 应用程序,其中包含自定义模型字段(以及随附的表单字段)。当我使用内置开发服务器运行该项目时,它工作正常。然而,使用gunicorn加载服务器会导致以下错误:

TemplateSyntaxError at /admin/
Caught TypeError while rendering: Error when calling the metaclass bases
    must be type, not None

为了完整性,我已经包含了下面的整个错误,它显示了错误的行:

Traceback:
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/contrib/admin/sites.py" in wrapper
  214.                 return self.admin_view(view, cacheable)(*args, **kwargs)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
  197.             return view(request, *args, **kwargs)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/contrib/admin/sites.py" in index
  382.             context_instance=context_instance
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/shortcuts/__init__.py" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
  188.         return t.render(context_instance)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in render
  123.             return self._render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in _render
  117.         return self.nodelist.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/defaulttags.py" in render
  311.             return self.nodelist_true.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/defaulttags.py" in render
  311.             return self.nodelist_true.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  64.             result = block.nodelist.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/debug.py" in render_node
  73.             result = node.render(context)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/template/defaulttags.py" in render
  437.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse
  391.             *args, **kwargs)))
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse
  312.         possibilities = self.reverse_dict.getlist(lookup_view)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  208.                     for name in pattern.reverse_dict:
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  208.                     for name in pattern.reverse_dict:
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  197.         for pattern in reversed(self.url_patterns):
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in _get_url_patterns
  279.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/core/urlresolvers.py" in _get_urlconf_module
  274.             self._urlconf_module = import_module(self.urlconf_name)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/home/rob/projects/shipp/shipp/tickets/urls.py" in <module>
  3. from shipp.tickets.views import TicketListView, TicketDetailView, \
File "/home/rob/projects/shipp/shipp/tickets/views.py" in <module>
  15. from shipp.tickets.forms import TicketForm, TicketAttributesForm, \
File "/home/rob/projects/shipp/shipp/tickets/forms.py" in <module>
  26. class TicketTimeSpentForm(forms.ModelForm):
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/forms/models.py" in __new__
  205.                                       opts.exclude, opts.widgets, formfield_callback)
File "/home/rob/.virtualenvs/shipp/lib/python2.7/site-packages/django/forms/models.py" in fields_for_model
  159.             formfield = f.formfield(**kwargs)
File "/home/rob/projects/shipp/shipp/../shipp/tickets/fields.py" in formfield
  43.         return super(TimedeltaField, self).formfield(*args, **defaults)

Exception Type: TemplateSyntaxError at /admin/
Exception Value: Caught TypeError while rendering: Error when calling the metaclass bases
    must be type, not None

正如您从回溯中看到的,导致问题的行(fields.py 中的第 43 行)只是常规的 super 调用。您对为什么会发生此错误有任何想法吗?如果我删除导致上述问题的方法,它也会出现在不同的地方。

最佳答案

这是由于我们尝试重新加载 Django 时 Gunicorn 中的错误造成的。它已经被恢复并且应该修复在 master 上。我们目前正在研究一种替代方法来为 run_gunicorn 命令重新加载运行。您可以在此处关注此进展:

https://github.com/benoitc/gunicorn/issues/222

关于python - Django 枪兽 : Error when calling the metaclass bases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416692/

相关文章:

python - 从文件名中提取 'WeekDay Month Date HH:MM:SS'?

python - Python 中意外的多线程 (scikit-learn)

python - Keras - 数组形状与 model.predict() 不匹配

python - Django 为 QuerySet 获取可执行的原始 sql

python - (Django) 按 desc 排序

python - 在 Python 运行之前覆盖默认的 type() 元类

python - "TypeError: object() takes no parameters"将 python2 元类转换为 python3

python - 错误 : Setup script exited with error: command 'gcc' failed with exit status 1

django - Mongoengine 检查 ListField() 中是否包含整个不区分大小写的字符串

python - 在元类的 __new__ 中发现模块的问题