2011-12-07 153 views
0

我使用的基於Django的實現http://blueimp.github.com/jQuery-File-Upload/(一個基於JQuery的拖放上傳庫)(django版本是https://github.com/sigurdga/django-jquery-file-upload),並設置了一個小部分一個更大的項目使用這種形式,它本身作爲一個應用程序安裝Django模型和視圖函數沒有被調用

當我通過/ upload/new(應用程序提供的「默認」URL)導航到表單時,一切都很棒 - 工作正常完全是他們應該的。但是,當我將表單嵌入單獨的網頁(/ a/b或其他)時,點擊'upload'會向用戶顯示「Error:SyntaxError:JSON.parse:unexpected character」。 我已經做了一些挖掘工作,似乎無論我做什麼,models.py和views.py中的函數都不會被調用 - 即使窗體構造正確(或者看起來正常,無論如何)

由於models.py和views.py在作爲/ a/b中較大頁面的一部分訪問表單時未被調用,所以如何強制他們在通過/ upload/new進行導航時強制調用它們的功能?

+0

是由請求或重播產生的錯誤?如果它處於請求階段,那就是爲什麼你的反手函數不會被調用。 – kfirbreger

+0

_Firebug_是你的朋友。也許一個JavaScript文件丟失在您的網頁或任何。 – Stan

回答

0

我用用戶認證fileupload代碼,並面臨類似的問題。 使用谷歌瀏覽器的開發人員工具(CTL + SHIFT + I)完成第一級調試。

網絡選項卡顯示應該返回JSON,而返回HTML錯誤形式,因此json解析錯誤(語法錯誤)。

覆蓋form_invalid類,看看形式拋出錯誤....

def form_invalid(self, form): 
    print form 
    return super(MyClass, self).form_invalid(form) 

然後我創建了一個自定義窗體和使用form_class通過我的自定義窗體。 我必須保存上傳文件的用戶。我像這樣保存了用戶...

self.object = form.save(commit=False) 
self.object.user = self.request.user 
self.object.save() 

P.S.這是我在stackoverflow上的第一篇文章..請原諒任何違背發佈答案的協議...