2011-06-20 5 views
1

J'ai une application Django qui inclut un champ de modèle personnalisé (et le champ de formulaire qui l'accompagne). Lorsque je lance le projet avec le serveur de développement intégré, cela fonctionne très bien. Chargement du serveur avec gunicorn, cependant, les résultats de l'erreur suivante:Django Gunicorn: Erreur lors de l'appel des bases de la métaclasse

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

J'ai inclus toute erreur ci-dessous pour être complet, ce qui montre la ligne en faute:

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 

Comme vous pouvez le voir à partir de la traceback, la ligne provoquant le problème (ligne 43 dans fields.py) est juste un appel régulier super. Avez-vous des idées sur la raison de cette erreur? Il se produit également à différents endroits, si je supprime la méthode à l'origine du problème ci-dessus.

Répondre

1

Ceci est dû à un bug dans Gunicorn lorsque nous essayions de recharger Django. Son depuis été renversé et devrait être fixé sur le maître. Nous travaillons actuellement sur une méthode alternative pour recharger en cours d'exécution pour la commande run_gunicorn. Vous pouvez suivre les progrès de ce ici:

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

+0

Ah OK. J'étais un peu nerveux à propos du suivi de mon maître pour l'hébergement de mon application web, mais il semble que ce soit la meilleure chose à faire ici. Je vous remercie! –

Questions connexes