gpt4 book ai didi

python - 使用 clean() 对带有下划线的字段进行 ModelForm 验证

转载 作者:行者123 更新时间:2023-12-02 08:16:40 25 4
gpt4 key购买 nike

我正在尝试在 ModelForm 上实现自定义验证,但在处理名称包含下划线的字段时遇到问题。

假设我有这个模型:

class MyModel(models.Model):
foo = models.IntegerField()
bar_qux = models.IntegerField()

当我尝试定义自定义验证时,我使用 clean_<fieldname>()方法。例如:

class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ('foo', 'bar_qux')

def clean_foo(self):
# Do stuff

def clean_bar_qux(self):
# Do other stuff

这样做,clean_foo()方法工作完美,但是 clean_bar_qux() one 从未被调用,原因似乎是 bar 之间的下划线和qux .

如何定义这个方法?

最佳答案

字段名称中的下划线不会阻止调用 clean 方法。

请注意 clean_<fieldname>如果字段验证失败(例如,如果您将字符串“22”而不是整数“22”传递给字段),则不会调用该方法。如果您打印或记录 form.errors调用form.is_valid()后,它可能会显示问题所在。

关于python - 使用 clean() 对带有下划线的字段进行 ModelForm 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32460497/

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