是否可以根据同一表单中的另一个字段是否已填写来使某个字段成为有条件必填的字段?
If field1 has no data, but field2 does
form is valid.
If field1 has no data and field2 has no data
form is invalid
不寻找任何 javascript 解决方案。我觉得它应该用 django 表单来解决,但不太确定如何最好地解决它。
最佳答案
如果您知道验证将应用于此类的所有对象,您也可以使用模型来执行此操作。要在表单级别使用以下内容,请使用 cleaned_data。以下是使用 ValidationError
的 Django 文档中的示例:
class Article(models.Model):
status = models.CharField(max_length=75, blank=False, null=False)
pub_date = models.CharField(max_length=75, blank=False, null=False)
def clean(self):
# Don't allow draft entries to have a pub_date.
if self.status == 'draft' and self.pub_date is not None:
raise ValidationError('Draft entries may not have a publication date.')
# Set the pub_date for published items if it hasn't been set already.
if self.status == 'published' and self.pub_date is None:
self.pub_date = datetime.date.today()
引用:Model Instance Clean , Django Validators
这是一个表单示例:
class SimpleForm(forms.ModelForm):
def clean(self):
cleaned_data = super(SimpleForm, self).clean() # Get the cleaned data from default clean, returns cleaned_data
field1 = cleaned_data.get("field1")
field2 = cleaned_data.get("field2"),
if not field1 and not field2:
raise forms.ValidationError('Please fill in both fields.')
return cleaned_data
关于python - 有条件地只需要 Django 模型表单中的一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2151966/