如何在验证 URLField 之前删除空格?
使用“clean_[fieldname]()”似乎是来自https://docs.djangoproject.com/en/dev/ref/forms/validation/的记录方式,但它不适用于 URLField。我已将其简化为可以在 django shell 中运行的基本测试用例:
class XXXTestModel(models.Model):
url = models.URLField('URL',null=True,blank=True)
name = models.CharField(max_length=200)
class XXXTestForm(ModelForm):
def clean_url(self):
return self.cleaned_data['url'].strip()
def clean_name(self):
return self.cleaned_data['name'].strip()
class Meta:
model = XXXTestModel
fields = (
'url',
)
从 Django shell 测试:
>>> django.VERSION
(1, 5, 1, 'final', 0)
>>> from xxx import XXXTestForm,XXXTestModel
>>> data = dict(url=' http://www.example.com/ ',name=' example ')
>>> f=XXXTestForm(data)
>>> f.is_valid();f.errors
False
{'url': [u'Enter a valid URL.']}
>>> f.cleaned_data
{'name': example'}
这个问题有很多关于堆栈溢出的问题,但没有一个答案可以指导解决方案。