Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django 2.2-使用数据url html属性上载图像时出现问题_Python_Django_Ajax_Forms_Image - Fatal编程技术网

Python Django 2.2-使用数据url html属性上载图像时出现问题

Python Django 2.2-使用数据url html属性上载图像时出现问题,python,django,ajax,forms,image,Python,Django,Ajax,Forms,Image,我已经看到Django的NoReverseError在这里发布了很多次,但是没有一个解决方案在这个特定的实例中有效 我的主要目标是在我的对象创建表单中创建一个图像上载字段,将多个图像上载到单个模型对象。我之所以这么做是因为最终产品非常适合 本教程指定“数据url”属性应指向处理文件表单的路径/视图 表单本身工作正常,url“/showroom/create”也工作正常 为了使Ajax表单适合我的大型项目,我必须更改一些属性: 为了保持一致性,请将“照片”改为“图像” 我不使用基本上传视图,因为它

我已经看到Django的NoReverseError在这里发布了很多次,但是没有一个解决方案在这个特定的实例中有效

我的主要目标是在我的对象创建表单中创建一个图像上载字段,将多个图像上载到单个模型对象。我之所以这么做是因为最终产品非常适合

本教程指定“数据url”属性应指向处理文件表单的路径/视图

表单本身工作正常,url“/showroom/create”也工作正常

为了使Ajax表单适合我的大型项目,我必须更改一些属性:

  • 为了保持一致性,请将“照片”改为“图像”
  • 我不使用基本上传视图,因为它与我的创建汽车上传视图位于同一页面上。(您将在urlconf文件中看到,如果没有这个插件,它可以完美地工作) 以及其他一些调整
  • 在线路的某个地方,我打破了流程,我不知道它出了什么问题

    这是上传表单的my views.py

    class CarCreate(CreateView):
        model = Car
        fields = '__all__'
        success_url = reverse_lazy('showroom:car-detail')
    
        slug_field = 'id'
        slug_url_kwarg = 'car_create'
    
        def get(self, request):
            image_list = Car.objects.all()
            return render(self.request, 'showroom/car_form.html', {'images': image_list})
    
        def post(self, request):
            form = ImageForm(self.request.POST, self.request.FILES)
            if form.is_valid():
                image = form.save()
                data = {'is_valid': True, 'name': image.file.name, 'url': image.file.url}
            else:
                data = {'is_valid': False}
            return JsonResponse(data)
    
    相关模板标记:

      <button type="button" class="btn btn-primary js-upload-photos">
        <span class="glyphicon glyphicon-cloud-upload"></span>Upload images
      </button>
      <input id="fileupload" type="file" name="file" multiple
      style="display: none;"
      data-url="{% url 'showroom:images:image_upload' %}" 
      data-form-data='{"csrfmiddlewaretoken": "{{ csrf_token }}"}'>
    
    在阅读了其他Stackoverflow答案后,我尝试了几种不同的解决方案: 1.这不是名称空间错误,因为我已经附加了“showroom:images”。 2.问题在于:

    'data-url="{% url 'showroom:images:image_upload' %}"'
    
    我知道,因为如果我将数据url更改为“#”,页面加载良好,但无法正常工作

    编辑以获取更多信息

    我读过这篇文章,但它并没有清楚地解决我的问题。如果我正确理解从反向函数生成urlse的其他Stackoverflow应答地址

    我的问题不是url本身,showroom/create/works非常好。我的问题来自于我试图创建的图像上传表单,我已经指出了生成错误的特定行

    是否需要其他信息

    编辑2

    我还将添加我的应用程序名为“showroom”,并且我在应用程序的urlconf页面中定义了app_name变量

    查看其他页面后,大多数页面都有一些明确定义的
    上下文
    名称,然后在模板中调用这些名称。有没有什么方法可以让我在表格上这样做


    我一直在尝试另一个的答案,比如嵌套名称空间('showroom:images:image_upload'),到目前为止,没有任何乐趣

    两个应用程序的show your
    urls.py
    文件可能重复。此
    image\u上传
    URL定义在哪里?这是一个名称空间问题:正如错误所说,很明显,在
    展厅
    中没有
    图像
    名称空间。显示
    图像
    URL及其包含方式。因此,我应该将图像路由到何处?
    Exception Type: NoReverseMatch at /showroom/create/
    Exception Value: 'images' is not a registered namespace inside 'showroom'
    
    'data-url="{% url 'showroom:images:image_upload' %}"'