简体   繁体   中英

Django Gunicorn: Error when calling the metaclass bases

I have a Django application which includes a custom model field (and accompanying form field). When I run the project with the built-in development server, it works fine. Loading the server with gunicorn, however, results in the following error:

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

I've included the whole error below for completeness, which shows the line at fault:

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

As you can see from the traceback, the line causing the issue (line 43 in fields.py ) is just a regular super call. Do you have any ideas as to why this error is happening? It occurs in different places also, if I remove the method causing the issue above.

This is due to a bug in Gunicorn when we were trying to reload Django. Its since been reverted and should be fixed on master. We're currently working on an alternative method to get reloading running for the run_gunicorn command. You can follow the progress of this here:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM