您好我目前正在研究一個django項目,在我的一個模型中我有一個文件上傳和圖片上傳,這兩個字段的參數都設置爲空= True,然而,這有一個規定,只有在兩者中的一個不是的情況下,該字段纔可以是空白的,例如,如果該字段是完整的,則用戶不必上傳文件,並且如果文件字段是完整的那麼用戶不需要上傳圖像。Python/Django模型覆蓋已清理的數據
我的問題是我努力弄清楚邏輯,這是在管理部分,所以我明白我會覆蓋乾淨的數據。誰能幫忙?
您好我目前正在研究一個django項目,在我的一個模型中我有一個文件上傳和圖片上傳,這兩個字段的參數都設置爲空= True,然而,這有一個規定,只有在兩者中的一個不是的情況下,該字段纔可以是空白的,例如,如果該字段是完整的,則用戶不必上傳文件,並且如果文件字段是完整的那麼用戶不需要上傳圖像。Python/Django模型覆蓋已清理的數據
我的問題是我努力弄清楚邏輯,這是在管理部分,所以我明白我會覆蓋乾淨的數據。誰能幫忙?
您只需要在ModelForm上定義一個自定義的clean()方法,該方法檢查是否填充了一個或兩個字段。
def clean(self):
file_field = self.cleaned_data.get('file_field')
image_field = self.cleaned_data.get('image_field')
if file_field and image_field:
raise forms.ValidationError("You should only provide one of File or Image")
elif not file_field and not image_field:
raise forms.ValidationError("You must provide either File or Image")
return self.cleaned_data
謝謝,雖然我想我錯過了,一個文件和一個圖像可以一起上傳,我認爲這會改變一些什麼情況? – Udders 2009-11-10 15:48:04
當然,那麼就放下第一個「if」。 – 2009-11-10 15:48:52
完成...怎麼樣? – 2009-11-10 15:36:13
完成,即在POST中有一個條目 – Udders 2009-11-10 15:41:26