Jquery 使用Ajax更新Django文件字段
我正在尝试用Ajax更新现有对象的文件字段。在浏览器中创建了一个wav blob,我试图通过将其附加到FormData实例来传递它:Jquery 使用Ajax更新Django文件字段,jquery,python,ajax,django,Jquery,Python,Ajax,Django,我正在尝试用Ajax更新现有对象的文件字段。在浏览器中创建了一个wav blob,我试图通过将其附加到FormData实例来传递它: var data = new FormData(); data.append('sound', blob); $.ajax({ url: "{% url 'posts:update_audio' instance.pk %}", type: 'POST', data
var data = new FormData();
data.append('sound', blob);
$.ajax({
url: "{% url 'posts:update_audio' instance.pk %}",
type: 'POST',
data: data,
cache: false,
processData: false,
contentType: false,
success: function(data) {
alert('success');
}
});
return false;
}
我通过url将pk传递给视图,因为(如果我错了,请纠正我),但我认为这是指定要更新的正确对象的路径的方法。以下是视图:
def update_audio(request,pk):
form = UpdateAudio(request.POST or None, request.POST or None)
if request.method == 'POST':
if form.is_valid():
instance = form.save(commit=False)
instance.save()
return HttpResponseRedirect('/')
我只是将其视为提交表单的任何其他视图。对于如何更新特定对象,我有点困惑,这就引出了我的问题:我应该使用一个特殊的视图,比如UpdateView吗?如果是,我如何实施?如果没有,有人知道我错在哪里吗?当我尝试提交表单时,我目前刚刚收到一个内部服务器错误500 将您的表单更改为此
instance = get_object_or_404(MyModel, id=pk)
form = MyUpdateAudioForm(request.POST or None,request.FILES, instance=instance)
和ajax url
url: "{% url 'posts:update_audio' pk=instance.pk %}",
把你的表格改成这个
instance = get_object_or_404(MyModel, id=pk)
form = MyUpdateAudioForm(request.POST or None,request.FILES, instance=instance)
和ajax url
url: "{% url 'posts:update_audio' pk=instance.pk %}",
你不知道你刚才帮了我多少忙。非常感谢你!你不知道你刚才帮了我多少忙。非常感谢你!