2012-05-05 50 views
0

我正在使用formset並允許用戶上傳多張圖片。有效。但問題是,如果用戶沒有選擇任何圖片上傳,則以下代碼正在保存submitter。如果用戶沒有上傳任何圖片,那麼我不想保存submitter。這可能嗎?如何檢查用戶是否正在上傳任何圖片

if form.is_valid() and formset.is_valid(): 
    for image_form in formset: 
     pics = image_form.save(commit=False) 
     pics_image.submitter = request.user 
     pics_image.save() 
+0

你的意思'pics_image.submitter = request.user'線?在它之前添加「if pics.image:」之類的東西。 – ilvar

回答

1

formset.save()比簡單地迭代表單以保存它們更多的處理。

因此您需要手動檢查form.has_changed()

還是要靠formset.save(commit=False)其返回實例保存

if form.is_valid() and formset.is_valid(): 
    for img in formset.save(commit=False): 
     img.submitter = request.user 
     img.save() 
    # formset.save_m2m() # if there is any m2m to save 
+0

謝謝,但得到錯誤'對象沒有屬性'save''這裏是一個完整的[追溯](http://dpaste.org/5LwQ8/)。 – Shah

+0

@Richard'RecipeImageFormFormSet'的類型是什麼?請張貼相關代碼。只有ModelFormSet有'save()'方法 – okm

+0

這裏是我的表單。 http://dpaste.org/iwYIN/ – Shah

相關問題