1
可以說我有一個窗體有兩個字段 - 名稱和圖像,都是必需的,並且是FormWizard的一部分。 當我將「名稱」字段留空但填寫「圖像」字段(這是一個ImageField並因此呈現給標記)時,表單無效,因此嚮導不會前進到下一步。 但是 - imagefield現在「失去了」它的價值 - 當我填寫名稱(這是我看到的唯一錯誤)並再次提交表單時,表單無效,因爲它表示圖像丟失。當窗體無效時,django窗體嚮導不保留request.FILES?
類似的事情發生,如果我填寫這兩個字段,然後提交 - 表單驗證,嚮導前進到下一個表單,如果我回到嚮導的一步,名稱填寫正確,因爲我離開它,但ImageField再次失去其價值,我需要重新填充它。
這是正常的行爲嗎?有沒有什麼可以做的,所以這不會發生,價值保存?
謝謝!這個想法本身起作用,所以我不會在嚮導的前後移動過程中「丟失」文件,這是我的原始問題。但是,如果我想將上傳的圖像顯示給用戶,我需要一個URL,因此需要額外的解決方法:通過將FILE_UPLOAD_MAX_MEMORY_SIZE設置爲0來禁用InMemoryUploadedFile,因此它始終保存到磁盤,並將FILE_UPLOAD_TEMP_DIR更改爲一個通過MEDIA_ROOT的已知目錄,並通過上下文變量將此路徑/ URL傳遞給模板,以便我可以顯示它。 –
是的 - 確實如此。讓我的巫師不久前工作,但方式稍有不同。該向導默認將文件上傳到由'file_storage'屬性設置的臨時位置([WizardView.file_storage](https://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/# django.contrib.formtools.wizard.views.WizardView.file_storage)),我在自定義的'ImageField'小部件中使用它來向用戶顯示圖像。 – affan