Python NoReverseMatch at/add/
我的url标签上不断出现错误。语法是正确的,我尝试了不同的解决方案,但没有运气 我的URL.pyPython NoReverseMatch at/add/,python,django,Python,Django,我的url标签上不断出现错误。语法是正确的,我尝试了不同的解决方案,但没有运气 我的URL.py urlpatterns = [ url(r'^$', LandingView.as_view(), name="landing_page"), url(r'^add/$', AddView.as_view(), name="add"), url(r'^rent/(?P<slug>\w+)/$', rent_detail, name="rent_detail"),
urlpatterns = [
url(r'^$', LandingView.as_view(), name="landing_page"),
url(r'^add/$', AddView.as_view(), name="add"),
url(r'^rent/(?P<slug>\w+)/$', rent_detail, name="rent_detail"),
url(r'^add/space/$', AddSpaceView.as_view(), name="addSpace"),
url(r'^lang/$', Language.as_view(), name="lang"),
url(r'^upload/image/(?P<pk>\d+)/$', ImageUpload, name="ImageUpload"),
url(r'^filter/space/$', FilterSpace.as_view(), name="filterSpace"),
url(r'^api/', include(v1_api.urls)),
]
add.html
<div id="listing">
</div>
<script type="text/javascript">
// want to passs url for uploading image in ajax url parameter
var data = {
urltag: "{% url 'ImageUpload' rental.id %}"
}
console.log('url is', data);
$(function() {
app.showListingSpaceForm("listing",data);
});
</script>
更新:Ajax代码,其中我希望url中的id用于将图像上载到其关联的rent您需要显式传递kwarg参数,因为您在url.py中定义了它:
urlpatterns = [
url(r'^$', LandingView.as_view(), name="landing_page"),
url(r'^add/$', AddView.as_view(), name="add"),
url(r'^rent/(?P<slug>\w+)/$', rent_detail, name="rent_detail"),
url(r'^add/space/$', AddSpaceView.as_view(), name="addSpace"),
url(r'^lang/$', Language.as_view(), name="lang"),
url(r'^upload/image/(?P<pk>\d+)/$', ImageUpload, name="ImageUpload"),
url(r'^filter/space/$', FilterSpace.as_view(), name="filterSpace"),
url(r'^api/', include(v1_api.urls)),
]
var data = {
urltag: "{% url 'ImageUpload' pk=rental.id %}"
}
您需要显式传递kwarg参数,因为您在URL.py中定义了它:
var data = {
urltag: "{% url 'ImageUpload' pk=rental.id %}"
}
当您转到
/add/
时,Django将运行AddView
,因为您有一个url模式
url(r'^add/$', AddView.as_view(), name="add"),
该视图将呈现rentals/add.html
,因为您有:
class AddView(TemplateView):
template_name = 'rentals/add.html'
呈现模板将失败,因为您正在url标记中使用rental
,但尚未在任何地方定义rental
{% url 'ImageUpload' rental.id %}
除非您的
AddView
可以在模板上下文中设置rental
,否则这样使用url标记将不起作用。当您转到/add/
时,Django将运行AddView
,因为您有一个url模式
url(r'^add/$', AddView.as_view(), name="add"),
该视图将呈现rentals/add.html
,因为您有:
class AddView(TemplateView):
template_name = 'rentals/add.html'
呈现模板将失败,因为您正在url标记中使用rental
,但尚未在任何地方定义rental
{% url 'ImageUpload' rental.id %}
除非您的
AddView
可以在模板上下文中设置rental
,否则像这样使用url标记将不起作用。NoReverseMatch在/add/Reverse处为带有参数“(”)”和关键字参数“{}”的“ImageUpload”找到匹配。尝试了两种模式:[“upload/image/(?P\\d+)\ \(?P[a-z0-9]+)/?$”,“upload/image/(?P\\d+)/$”]我已使用AddView进行了更新,并说明了我希望在add.html页面中显示id的原因。我希望在add.html模板中的ajax代码中显示rental.id。My add.html呈现了一个由UISSJ开发的列表表单。有一个html标记具有前端表单和ajax代码。因此,add.html页面中需要id,其中有表单和ajax代码用于将图像发送到服务器。找不到/add/Reverse处的'ImageUpload'的NoReverseMatch,其中包含参数'('',)'和关键字参数'{}'。尝试了两种模式:[“upload/image/(?P\\d+)\ \(?P[a-z0-9]+)/?$”,“upload/image/(?P\\d+)/$”]我已使用AddView进行了更新,并说明了我希望在add.html页面中显示id的原因。我希望在add.html模板中的ajax代码中显示rental.id。My add.html呈现了一个由UISSJ开发的列表表单。有一个html标记,它有前端表单和ajax代码。所以在add.html页面中需要id,其中有表单和ajax代码用于向服务器发送图像。将rent
从arg更改为kwarg在这里没有帮助。我仍然收到一个错误。异常值:找不到参数为“()”且关键字参数为“{pk':''}”的“ImageUpload”的反向。尝试了2种模式:['upload/image/(?P\\d+)\\.(?P[a-z0-9]+)/?$','upload/image/(?P\\d+)/$']这不是真的,命名捕获组的参数可以作为位置参数传递给reverse()
和{%url%}
。您的代码与原始代码在行为上没有差异。将rent
从arg更改为kwarg在这里没有任何帮助。我仍然收到一个错误。异常值:找不到参数为“()”且关键字参数为“{pk':''}”的“ImageUpload”的反向。尝试了2种模式:['upload/image/(?P\\d+)\\.(?P[a-z0-9]+)/?$','upload/image/(?P\\d+)/$']这不是真的,命名捕获组的参数可以作为位置参数传递给reverse()
和{%url%}
。您的代码和原始代码在行为上没有区别。我想我必须这样做,然后才能获取id类AddView(TemplateView):template_name='rentals/add.html'def get_context_data(self,**kwargs):context=super(AddView,self)。get_context_data(**kwargs)context['rental']=rental.objects.all()return context我的主要要求是将图像保存到其关联的位置。我可以上传图片,但它们不会保存到相关的租金中。我必须手动将图像添加到管理员的租金中。这样覆盖get\u context\u data
会将所有租金传递到模板上下文。url标记仍然不起作用,除非它位于循环中,如{%forrentals%}{%url'ImageUpload'rental.id%}{%endfor%}
是的,这样我就得到了多个id。抱歉,我已经删除了它。我想我必须这样做,然后才能获取id类AddView(TemplateView):template_name='rentals/add.html'def get_context_数据(self,**kwargs):context=super(AddView,self).get_context_data(**kwargs)context['rental']=rental.objects.all()return context我的主要要求是将图像保存到其关联的租金中。我可以上载图像,但它们不会保存到其关联的租金中。我必须从管理员处手动将图像添加到租金中。覆盖get\u context\u data
这样会将所有租金传递到模板上下文中。url标记仍然不起作用,除非它不起作用s在一个循环中,如{%for rentals%}{%url'ImageUpload'rental.id%}{%endfor%}
是这样我得到了多个id。很抱歉,我已将其删除。