0
我试图用Ajax更新现有对象的FileField。一个WAV BLOB在浏览器中创建的,我想通过追加到一个FORMDATA实例来传递:使用Ajax更新Django Filefield
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;
}
我传递的PK通过URL的观点,因为如果(指正我错了),但我认为这是指定要更新的正确对象的路径的方式。这是看法:
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。
你不知道你有多少只是帮了我。非常感谢exprator! –
哈哈。我的快乐兄弟,我可以帮助@AdamMizell :) – Exprator