我的网址标签上一直有错误。语法是正确的,我尝试了不同的解决方案,要求这样做,但还没有成功。
my urls.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)),
]views.py
def ImageUpload(self, request, *args, **kwargs):
try:
rental = Rental.objects.get(pk = kwargs.get('pk'))
except Rental.DoesNotExist:
error_dict = {'message': 'Rental spae not found'}
return self.render(request,'rentals/add.html',error_dict)
for file in request.FILES.getlist('image'):
image = GalleryImage.objects.create(image=file,rental=rental)
response_dict = {
'message': 'File Uploaded Successfully'
}
context = {
'rental':rental
}
return self.render(request,'rentals/add.html',context)
class AddView(TemplateView):
template_name = 'rentals/add.html'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
$.ajax({
url:"/upload/image/", // upload form is in add.html which is developed using frontend library reactjs and i need to pass id here so that the image will be saved to its associated rent.
data:image,
contentType:false,
processData:false,
type:'POST',
mimeType: "multipart/form-data",
success: function(data) {
console.log('success');
}
});
}Ajax更新:在代码中,我希望在url中使用id将图像上传到与其相关的租金
发布于 2016-03-14 10:58:54
当您转到/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,但是您没有在任何地方定义租房。
{% url 'ImageUpload' rental.id %}除非您的AddView可以在模板上下文中设置rental,否则像这样使用url标记将无法工作。
发布于 2016-03-14 09:57:28
您需要显式地传递kwarg参数,因为您在urls.py中定义了它:
var data = {
urltag: "{% url 'ImageUpload' pk=rental.id %}"
}https://stackoverflow.com/questions/35984043
复制相似问题