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