django模板网址从另一个应用程序 [英] django template url from another app
本文介绍了django模板网址从另一个应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
call / template / call / file.html
< form action ={%url'upload_image'%}>< / form> ;
图片/ 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):
打印'IN IMAGE UPLOAD'
打印请求
我所得到的是:
NoReverseMatch at / call / 4 /
反向'upload_image'与参数'()'和关键字参数'{}'找不到。 0模式尝试:[]
解决方案
您应该使用其命名空间版本,如下所示:
{%url'app_name:app_url'%}
在你的具体情况下,这意味着:
{%url'图片:upload_image'%}
I have to be missing something silly. I have a {% url %} in a template where the action is from another app. It isn't working but I have no clue if there is something different about using view functions from other apps or if I am just doing something silly.
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
All I ever get is:
NoReverseMatch at /call/4/
Reverse for 'upload_image' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
解决方案
When calling reverse()
on an URL that comes from a different application, you should use its "namespaced" version, like so:
{% url 'app_name:app_url' %}
In your specific case, that translates to:
{% url 'picture:upload_image' %}
这篇关于django模板网址从另一个应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文