Django-grappelli-admin -: Keine reverse-match-Fehler
Habe ich gearbeitet, auf einem django-Projekt für eine Weile jetzt verwendet grappelli für den admin und plötzlich heute meine change_form.html Vorlage wirft folgende Fehler:
Caught NoReverseMatch while rendering: Reverse for "grp_related_lookup" with arguments '()' and keyword arguments '{}' not found.
Die problematische code in Zeile 38:
37 $.each(related_lookup_fields_fk, function() {
38 $("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
39 });
dem vorangestellt ist, dieses Stück code:
var related_lookup_fields_fk = {% get_related_lookup_fields_fk adminform.model_admin %};
Ist es natürlich, die {% url grp_related_lookup %}
Stück, das das problem verursacht.
Ich verstehe nicht, wie die Vorlage ist die Lösung grp_related_lookup
zu grappelli.views.related.related_lookup
. Ich habe versucht, anstelle grp_related_lookup
mit grappelli.views.related.related_lookup
- und das hat nicht funktioniert entweder. Auch in der Vorlage, die betreffende Zeile sieht so aus:
$("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
aber in der Fehlermeldung sieht es so aus:
$("#id_" + this).grp_related_fk({lookup_url:"{% url 'grp_related_lookup' %}"});
Ich weiß nicht, ob die einzelnen Anführungszeichen um grp_related_lookup
könnte etwas mit dem problem zu tun oder nicht. Das ist wie django machte die Funktion aufrufen? Ist es vorbei die Zeichenfolge 'grp_related_lookup'
auf das url template tag? Wenn dem so ist, was verursacht haben könnten, diese zu brechen plötzlich?
Einige zusätzliche Infos:
- Der Wert
related_lookup_fields
ist eine leere Liste[]
. Ich bin nicht der Definition jederrelated_lookup_fields
in meinem admin.py. - Ich warf ein paar debug-statements in die
grappelli.views.related.related_lookup
- view-Funktion und es erscheint nicht immer genannt. - Ich habe nicht berührte eine der Vorlagen vor kurzem.
Hoffentlich kann jemand mich in die richtige Richtung... Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie noch
'grappelli.urls'
enthalten in Ihrem URLconf? Der einzige Grund den ich sehen würde, dass diese Fehler verursachen. Können Sie versuchen, mitpython manage.py shell
:Wenn diese Zeile gibt die korrekte URL, Sie sollten nicht eine
NoReverseMatch
in Ihrer Vorlage.Die Anführungszeichen um
grp_related_lookup
sollte nicht von Belang sein. Die{% url %}
tag akzeptiert beide zitiert und nicht in Anführungszeichen gesetzte strings als erstes argument, so django normalisiert es sich um Zeichenfolgen. Dieses Verhalten wird sich in Zukunft ändern: Sie werden in der Lage sein, um pass template-Variablen zu{% url %}
mit nicht gequotete strings.{% url foo %}
und{% url "foo" %}
wird nicht das gleiche Ergebnis, siehe die 1.3 release notes für Informationen über diese.( r'^grappelli/', include('grappelli.urls') )
in meinem URLconf. Ich habe versucht, Ihren Vorschlag in der shell und es wirft einen Fehler auch. Vielen Dank für das heads-up über die url-Vorlage tag.Ich hatte das gleiche Verhalten mit Django 1.5 und Grappelli 2.4.4.
Um das problem zu beheben musste ich hinzufügen
zu
urlpatterns
.Stand ich mit diesem problem heute, als ich versuchte, Daten zu löschen, im admin.
Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': ''}' not found.
Habe ich die
url(r'^grappelli/', include('grappelli.urls'))
im urls.pyDie Lösung ist ziemlich seltsam: aktualisieren Sie einfach die grappelli auf die neueste version. (Ich aktualisierte es aus 2.5.6 2.6.3)
Stand ich vor diesem problem gestern. Die Django-grapelli, die ich verwendet, wurde aufgenommen in die FileBrowser-installation. Ich löste das problem durch ein Upgrade Django-grapelli. Geben Sie einfach:
Ich hatte ein ähnliches Problem mit urls und bemerkt, dass ich brauche
in der Vorlage, wenn ich zitiert url-tags. Das ist auch erwähnt in der offiziellen django-Dokumentation: https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#url
Ich zu sein scheinen Begegnung das gleiche Problem, aber wenn ich das vorgeschlagen Konsole test bekomme ich das:
Und meine
urls.py
sieht wie folgt aus:Ich habe auch die neueste Grappelli (2.6.4) läuft auf Django (1.8.2). By the way, es scheint, dass es nur Auftritt, wenn ich versuche, den Zugriff und das hinzufügen oder Bearbeiten von anzeigen. Die control-panel-und Listenansichten arbeiten.