【发布时间】:2019-12-28 22:55:56
【问题描述】:
我有这个模型
class TravelRequests(models.Model):
mission_order = models.FileField(blank=True, null=True, upload_to='mission_order')
其中任务订单文件字段不是创建模型所必需的,但它将由另一个用户更新,以便他可以上传文件。 问题是,当我在创建模型时上传文件时,它不会将文件保存在 /media 文件夹中,而在它自己的文件字段中,它只保存文件的名称
这是 ajax 请求:
var data = new FormData($('.facilities_form').get(0));
var pk = $(this).val()
$.ajax({
type: "POST",
url: '/approve_facilities/' + pk + '/',
data: data,
cache: false,
processData: false,
contentType: false,
success: function(response) {
if (response == 'request_updated') {
Swal.fire({
title: 'The request is approved!',
type: 'success',
allowOutsideClick: false,
}).then((result) => {
if (result.value) {
window.location.href='/'
}
});
}
}
});
这是处理请求的视图
@login_required
def FacilitiesApproveRequest(request, pk):
cordinator_comment = request.POST.get('cordinator_comment', '').strip()
mission_order = request.FILES.get('mission_order')
request_toApprove = TravelRequests.objects.filter(pk=pk)
request_toApprove.update(mission_order=mission_order, facilities_approve_case=True,
facilities_comment=cordinator_comment, facilities_comment_time=timezone.now(),
request_updater=request.user, request_update=timezone.now(),
request_status='facility_approve', facilities_aprove=request.user)
return HttpResponse('request_updated')
这是 html 输入:
<form class="facilities_form" method="post" enctype="multipart/form-data">
<input type="file" name="mission_order" id="id_mission_order" accept=".pdf,.jpeg,.png,.msg">
</form>
只有没有路径的文件名,当我查看任务订单文件夹时,我没有找到上传的文件。
任何帮助将不胜感激。
【问题讨论】:
-
您是否尝试过分配
request_toApprove.mission_order = mission_order,然后显式调用.save()? -
它有效,谢谢,您介意解释一下为什么它适用于 .save() 方法而不是 .update() 吗??
标签: django python-3.x django-models