django-template-url aus einer anderen app
Habe ich, fehlt etwas albern. Ich habe eine {% url %} im template, wo die action ist von einer anderen app aus. Es funktioniert nicht, aber ich habe keine Ahnung, wenn es etwas anders über die Verwendung von view-Funktionen von anderen apps oder wenn ich gerade etwas albern.
call/template/call/file.html
<form action="{% url 'upload_image' %}"></form>
picture/urls.py
from .views import PictureList, PictureCreate, PictureDetail, PictureUpdate, PictureDelete, upload_image
...
url(r'^upload_image/$', upload_image, name='upload_image'),
...
picture/view.py
def upload_image( request ):
print 'IN IMAGE UPLOAD'
print request
Alles, was ich jemals bekommen ist:
NoReverseMatch at /call/4/
Reverse for 'upload_image' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
- Ist die Datei absichtlich namens
url.py
oder ist es ein Tippfehler? - es war ein Tippfehler...ist jetzt behoben
- Was ist, wenn Sie eine Namespace-version
{% url 'picture:upload_image' %}
statt? - Ich habe versucht
action="{% url 'picture:upload_image' %}"
undurl(r'^upload_image/$', upload_image, namespace='picture', name='upload_image'),
sagt aber Bild ist nicht von einem registrierten Namensraum. (Ich habe nicht benutzt namespaces vor.) - oh, oder ist der namespace, gehen in das Projekt urls.py Liste (und nicht in picture/urls.py)
- ah, hab es. Namensräume werden standardmäßig auf den Namen der app. das hat geklappt. Vielen Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim Aufruf
reverse()
auf eine URL, die kommt aus einer anderen Anwendung, die Sie verwenden sollten, seinen "Namespace" - version, etwa so:In Ihrem speziellen Fall, das heißt übersetzt: