gpt4 book ai didi

python - 有条件地只需要 Django 模型表单中的一个字段

转载 作者:太空狗 更新时间:2023-10-29 20:43:02 26 4
gpt4 key购买 nike

是否可以根据同一表单中的另一个字段是否已填写来使某个字段成为有条件必填的字段?

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

引用:Form & Field Validation

关于python - 有条件地只需要 Django 模型表单中的一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2151966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com