0
我在一個模型中有兩個字段,我只想要一個有效的字段在管理員表單中。如果一個字段有效,那麼另一個字段不可能插入數據,反之亦然。但是有必要將數據放入兩個字段中的一個來保存。Django:兩個字段,一個有效
這可能嗎?
謝謝!
我在一個模型中有兩個字段,我只想要一個有效的字段在管理員表單中。如果一個字段有效,那麼另一個字段不可能插入數據,反之亦然。但是有必要將數據放入兩個字段中的一個來保存。Django:兩個字段,一個有效
這可能嗎?
謝謝!
如果您希望驗證發生在後端,您將在表格的clean
方法中進行驗證。是這樣的:
class MyAdminForm(forms.ModelForm):
def clean(self):
cd = self.cleaned_data
fields = [cd['field1'], cd['field2']]
if all(fields):
raise ValidationError('Please enter one or the other, not both')
if not any(fields): #Means both are left empty
raise ValidationError('Please enter either field1 or field2, but not both')
return cd
Here is the documentation on using forms with django admin
如果你想驗證發生在前端,而不是形式提交,你可能要考慮使用一個JavaScript解決方案。 這是一個答案javascript solution