superusuario superuser proyectos password ejemplos datos create crear django django-admin django-templates django-grappelli

superuser - django create database



Administrador de Django-grappelli: Sin error de coincidencia inversa (6)

¿Todavía tienes ''grappelli.urls'' incluido en tu URLconf? Esa es la única razón por la que veo que causaría este error. Puede intentar usar python manage.py shell :

from django.core.urlresolvers import reverse print reverse(''grp_related_lookup'')

Si esta línea devuelve la URL correcta, no debería obtener un NoReverseMatch en su plantilla.

Las comillas alrededor de grp_related_lookup no deberían ser una preocupación. La etiqueta {% url %} acepta las cadenas entre comillas y sin comillas como primer argumento, por lo que django lo normaliza a las cadenas entre comillas. Este comportamiento va a cambiar en el futuro: podrá pasar variables de plantilla a {% url %} utilizando cadenas sin comillas. {% url foo %} y {% url "foo" %} no darán el mismo resultado; consulte las notas de la versión 1.3 para obtener detalles sobre esto.

He estado trabajando en un proyecto django desde hace un tiempo que usa grappelli para el administrador y, de repente, hoy mi plantilla change_form.html arroja el siguiente error:

Caught NoReverseMatch while rendering: Reverse for "grp_related_lookup" with arguments ''()'' and keyword arguments ''{}'' not found.

La línea ofensiva de código es la línea 38:

37 $.each(related_lookup_fields_fk, function() { 38 $("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"}); 39 });

que está precedido por este bit de código:

var related_lookup_fields_fk = {% get_related_lookup_fields_fk adminform.model_admin %};

Obviamente es el bit {% url grp_related_lookup %} que está causando el problema.

No entiendo cómo la plantilla está resolviendo grp_related_lookup a grappelli.views.related.related_lookup . He intentado reemplazar grp_related_lookup con grappelli.views.related.related_lookup y eso tampoco funcionó. Además, en la plantilla, la línea ofensiva se ve así:

$("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});

pero en el mensaje de error se ve así:

$("#id_" + this).grp_related_fk({lookup_url:"{% url ''grp_related_lookup'' %}"});

No sé si las comillas simples que rodean a grp_related_lookup podrían tener algo que ver con el problema o no. ¿Es así como django prestó la llamada a la función? ¿Está pasando la cadena ''grp_related_lookup'' a la etiqueta de la plantilla de URL? Si es así, ¿qué pudo haber causado que esto se rompiera de repente ?

Alguna información adicional:

  • El valor de related_lookup_fields es una lista vacía [] . No estoy definiendo ningún campo related_lookup_fields en mi admin.py
  • grappelli.views.related.related_lookup un par de declaraciones de depuración en la función de vista grappelli.views.related.related_lookup y no parece que se llame.
  • No he tocado ninguna de las plantillas recientemente.

Espero que alguien pueda señalarme en la dirección correcta ... ¡Gracias!



Encontré el mismo comportamiento con Django 1.5 y Grappelli 2.4.4.

Para arreglar el problema, tuve que agregar

url(r''^grappelli/'', include(''grappelli.urls'')),

a los urlpatterns .


Me enfrenté a este problema hoy, cuando traté de eliminar datos en el administrador. Reverse for ''app_list'' with arguments ''()'' and keyword arguments ''{''app_label'': ''''}'' not found.

He puesto la url(r''^grappelli/'', include(''grappelli.urls'')) en urls.py

La solución es bastante extraña: simplemente actualice el grappelli a la última versión. (Lo actualicé de 2.5.6 a 2.6.3)


Parece que me encuentro con este mismo problema, pero cuando ejecuto la prueba sugerida de la consola obtengo esto:

Python 2.7.9 (default, Apr 7 2015, 07:58:25) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from django.core.urlresolvers import reverse >>> print reverse(''grp_related_lookup'') Traceback (most recent call last): File "<console>", line 1, in <module> File "/Users/tsantor/.virtualenvs/project_env/lib/python2.7/site-packages/django/core/urlresolvers.py", line 579, in reverse return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) File "/Users/tsantor/.virtualenvs/project_env/lib/python2.7/site-packages/django/core/urlresolvers.py", line 496, in _reverse_with_prefix (lookup_view_s, args, kwargs, len(patterns), patterns)) NoReverseMatch: Reverse for ''grp_related_lookup'' with arguments ''()'' and keyword arguments ''{}'' not found. 0 pattern(s) tried: []

Y mi urls.py ve así:

urlpatterns = patterns( # Admin url(r''^grappelli/'', include(''grappelli.urls'')), url(r''^admin/'', include(admin.site.urls), name="admin"), # main views #url(r''^$'', RedirectView.as_view(url=''/admin''), name=''home''), # API url(r''^api/'', include(''api.urls'', namespace=''api'')), )

También tengo el último Grappelli (2.6.4) ejecutándose en Django (1.8.2). Por cierto, parece que solo ocurre cuando intento acceder y agregar o editar la vista. El panel de control y las vistas de lista funcionan.


Me enfrenté a este problema ayer. El Django-grapelli que utilicé fue el que se incluyó en la instalación de FileBrowser. Resolví el problema actualizando Django-grapelli. Sólo tipo:

pip install --upgrade django-grappelli