首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoReverseMatch /add/

NoReverseMatch /add/
EN

Stack Overflow用户
提问于 2016-03-14 09:42:28
回答 2查看 307关注 0票数 0

我的网址标签上一直有错误。语法是正确的,我尝试了不同的解决方案,要求这样做,但还没有成功。

my urls.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
<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

代码语言:javascript
复制
 $.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将图像上传到与其相关的租金

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-14 10:58:54

当您转到/add/时,Django将运行AddView,因为您有一个url模式。

代码语言:javascript
复制
url(r'^add/$', AddView.as_view(), name="add"),

该视图将呈现rentals/add.html,因为您有:

代码语言:javascript
复制
class AddView(TemplateView):
    template_name = 'rentals/add.html'

呈现模板将失败,因为您在url标记中使用了rental,但是您没有在任何地方定义租房。

代码语言:javascript
复制
{% url 'ImageUpload' rental.id %}

除非您的AddView可以在模板上下文中设置rental,否则像这样使用url标记将无法工作。

票数 3
EN

Stack Overflow用户

发布于 2016-03-14 09:57:28

您需要显式地传递kwarg参数,因为您在urls.py中定义了它:

代码语言:javascript
复制
var data = {
    urltag: "{% url 'ImageUpload' pk=rental.id %}"
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35984043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档