相关疑难解决方法(0)

django MultiValueDictKeyError错误,我该如何处理它

我正在尝试将对象保存到我的数据库,但它会抛出MultiValueDictKeyError错误.

问题在于表单,is_private由复选框表示.如果未选中该复选框,则显然不会传递任何内容.这是错误被丢失的地方.

我如何正确处理这个异常,并抓住它?

这条线是

is_private = request.POST['is_private']
Run Code Online (Sandbox Code Playgroud)

python django exception

153
推荐指数
6
解决办法
19万
查看次数

Django JQuery Ajax文件上传

我一直试图上传一个简单的文本文件几个小时,但我似乎仍然无法让它工作.

我一直收到无效的表格,说我错过了"file_source".

为什么"file_source"没有发布?

我也让它实际发送"file_source",但它仍然说它丢失了.应该为Django FileFiled提供什么类型的元素?

Django表格:

class FileUploadForm(forms.Form):
    file_source = forms.FileField()
Run Code Online (Sandbox Code Playgroud)

Django模板(渲染表格):

<form action="/upload/" method="post" id="file-upload-form" enctype="multipart/form-data"> {% csrf_token %}
    {{ form }}
    <button type="submit" class="btn btn-primary" id='upload-btn'>Upload</button>
</form>
Run Code Online (Sandbox Code Playgroud)

JQuery/Ajax上传:

function uploadFile() {
$.ajax({
    data: $(this).serialize(),
    type: $(this).attr('method'),
    url: $(this).attr('action')
});
return false;
}

$(function() {
     $('#file-upload-form').submit(uploadFile);
});
Run Code Online (Sandbox Code Playgroud)

Django View哪收到POST:

def upload_view(request):
if request.is_ajax():
    form = FileUploadForm(request.POST)
    if form.is_valid():
        print 'valid form'
    else:
        print 'invalid form'
        print form.errors
return HttpResponseRedirect('/ingest/')
Run Code Online (Sandbox Code Playgroud)

django ajax jquery django-forms

22
推荐指数
1
解决办法
3万
查看次数

如何使用django imageField保存图像?

从应用程序(iOS android等)发布而不是Web表单.

class someImage(models.Model):
    image = models.ImageField(upload_to= settings.SHARE_IMAGE_UPLOAD_PATH)

@csrf_exempt
def saveImage(request):
Run Code Online (Sandbox Code Playgroud)

如何写视图?它在邮件请求中接收图像.我发现的每件事都与表格相关(服务器新手)

python django imagefield

7
推荐指数
2
解决办法
2万
查看次数

Django ajax jquery文件上传

我的django项目中的文件上传有问题.所以问题是:如何通过jquery ajax将文件传递给django视图?

这一刻我有

脚本:

<script type='text/javascript'>
$(document).ready(function() {
    var csrf_token = $('input[name="csrfmiddlewaretoken"]').val();
    $('#upload').click(function() {
        $.ajax({
            csrfmiddlewaretoken: csrf_token,
            type: 'POST',
            url : '../ajax/upload_file/',
            enctype: "multipart/form-data",
            data  : {
                'file': $('#file').val()
            },
            success: function(data) {
                console.log(data)
            }
        })
    })
})
</script>
Run Code Online (Sandbox Code Playgroud)

模板:

 <form method="" action="" name='upload_form' id='upload_form' >{% csrf_token %}
    <input type='file' name='file' id='file' />
    <input type='button' value='Upload' id='upload'/>
 </form>
Run Code Online (Sandbox Code Playgroud)

查看:

@csrf_exempt
@xhr_to_json
def verifyFile(request):
    if request.is_ajax():
        file = request.FILES['file']
        return {'message': file}
    else: 
        return HttpResponseForbidden()
Run Code Online (Sandbox Code Playgroud)

现在我得到了

Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

django ajax jquery file-upload django-views

5
推荐指数
1
解决办法
8921
查看次数