Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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 djangoajax——当我用ajax发送表单时,为空request.FILE,Django_Python_Ajax_Django_Forms - Fatal编程技术网

Python djangoajax——当我用ajax发送表单时,为空request.FILE,Django

Python djangoajax——当我用ajax发送表单时,为空request.FILE,Django,python,ajax,django,forms,Python,Ajax,Django,Forms,我正在使用Django 1.5.2、jQuery v1.9.0和POSTGRESQL 9.1 我正在使用ajax发送表单,但requst.FILE为空,imgen未发送 这是我的档案 Models.py class Evento(models.Model): nombre = models.CharField(max_length=16) def __unicode__(self): return self.nombre class Im

我正在使用Django 1.5.2、jQuery v1.9.0和POSTGRESQL 9.1

我正在使用ajax发送表单,但requst.FILE为空,imgen未发送

这是我的档案

Models.py

class Evento(models.Model):
    nombre            = models.CharField(max_length=16)
    def __unicode__(self):
        return self.nombre 

class Imagen(models.Model):    
    def url(self,filename):
        ruta = "MultimediaData/Evento/%s/%s"%(self.evento.id,str(filename))
        return ruta
    evento = models.ForeignKey(Evento)
    photo = models.ImageField(upload_to=url)

    def __unicode__(self):
        return str(self.photo) 
乌拉尔·皮伊

urlpatterns = patterns('CasadeAna.apps.home.views',        
        url(r'^addevento/$','addevent_view',name='event_add'), 
        url(r'^editevento/(?P<idevento>.*)/$','editevent_view',name='event_edit'), 
)         
HTML

形式

imagenform.html

<form id="formulario" method="POST" enctype="multipart/form-data">
        {% csrf_token %}
        {{form.as_p}}
        <button type="submit"class="btn btn-primary" onClick="enviar(this);">Guardar</button>
        <button type="reset" class="btn btn-primary">Limpiar</button>
</form>

{%csrf_令牌%}
{{form.as_p}}
瓜达尔
林皮亚
editEvent.html

 {% extends 'base.html' %}
{% block menu %}
{% endblock %}
{% block  content %}
<div style="height:100%;"  align="left" >
    <h1 class="muted"> Editar Imagenes </h1>
  <h2>{{evento.nombre}}</h2>
    <div id="imagenes">
        <div id="menu" >
            <button class="btn" onClick="subirImagen(this);">Agregar Imagen <i class="icon-plus"></i></button>
        <div>           
        <div id="contenedor">
            <ul class="thumbnails">
            {% if  imagen %}
                {% for i in imagen %}
                     <li class="span4">
                        <img data-src="{{i.photo}}" alt="">
                    </li>
                {% endfor %}
            {% endif %}
        </ul>
        </div>
    </div>
 </div>
{% endblock %}
{% block js %}
 <script type="text/javascript">
    //pedir formulario para subir una imagen 
    function subirImagen(e)
    {
        $.ajax({
              url: '/editevento/14/',
              type: 'GET',
              dataType: 'html',
              success: function(datos){
                   $('#contenedor').empty();
                   $('#contenedor').append(datos);
                }
            });
    }
  function enviar(e)
  {
        $('#formulario').submit(function(evento){
            evento.preventDefault();
            var datos_formulario = $(this).serialize();        
            alert('event444os');
            $.ajax({
                url: '/editevento/14/',
                data: datos_formulario,
                type: 'POST',
                dataType: 'html',
                processData:false,
                cache:false,
                success: function(datos){
                    $('#contenedor').empty();
                    $('#contenedor').append(datos);
                }
            });
        });
    }
 </script>
{% endblock %}
{%extends'base.html%}
{%块菜单%}
{%endblock%}
{%block content%}
编辑图像
{{evento.nombre}}
阿格雷加成像
    {%if imagen%} {imagen%中的i的%s}
  • {%endfor%} {%endif%}
{%endblock%} {%block js%} //足部公式 函数子图像(e) { $.ajax({ url:“/editevento/14/”, 键入:“GET”, 数据类型:“html”, 成功:功能(datos){ $('#contendor').empty(); $('#contendor')。附加(datos); } }); } 功能环境(e) { $('#formulario')。提交(函数(evento){ evento.preventDefault(); var datos_formulario=$(this).serialize(); 警报(“event444os”); $.ajax({ url:“/editevento/14/”, 数据:datos_formulario, 键入:“POST”, 数据类型:“html”, processData:false, cache:false, 成功:功能(datos){ $('#contendor').empty(); $('#contendor')。附加(datos); } }); }); } {%endblock%}
提交表单请求。post值和文件为 请寄

请求文件


求求你,救命

您不能像这样发布文件。看看这个问题:或者这个问题:

你能更具体地解释一下吗?链接是有帮助的,但更有用的是解释为什么你不能发布像“this”这样的文件,不管“this”是什么。
 {% extends 'base.html' %}
{% block menu %}
{% endblock %}
{% block  content %}
<div style="height:100%;"  align="left" >
    <h1 class="muted"> Editar Imagenes </h1>
  <h2>{{evento.nombre}}</h2>
    <div id="imagenes">
        <div id="menu" >
            <button class="btn" onClick="subirImagen(this);">Agregar Imagen <i class="icon-plus"></i></button>
        <div>           
        <div id="contenedor">
            <ul class="thumbnails">
            {% if  imagen %}
                {% for i in imagen %}
                     <li class="span4">
                        <img data-src="{{i.photo}}" alt="">
                    </li>
                {% endfor %}
            {% endif %}
        </ul>
        </div>
    </div>
 </div>
{% endblock %}
{% block js %}
 <script type="text/javascript">
    //pedir formulario para subir una imagen 
    function subirImagen(e)
    {
        $.ajax({
              url: '/editevento/14/',
              type: 'GET',
              dataType: 'html',
              success: function(datos){
                   $('#contenedor').empty();
                   $('#contenedor').append(datos);
                }
            });
    }
  function enviar(e)
  {
        $('#formulario').submit(function(evento){
            evento.preventDefault();
            var datos_formulario = $(this).serialize();        
            alert('event444os');
            $.ajax({
                url: '/editevento/14/',
                data: datos_formulario,
                type: 'POST',
                dataType: 'html',
                processData:false,
                cache:false,
                success: function(datos){
                    $('#contenedor').empty();
                    $('#contenedor').append(datos);
                }
            });
        });
    }
 </script>
{% endblock %}