URLField を検証する前に空白を削除するにはどうすればよいですか?
「clean_[fieldname]()」を使用することは、https: //docs.djangoproject.com/en/dev/ref/forms/validation/ から文書化された方法のようですが、URLField では機能しません。django シェルで実行できる基本的なテスト ケースに減らしました。
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 シェルからテスト済み:
>>> 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'}
スタックオーバーフローに関するこの質問には多くの重複がありますが、解決策につながる回答はありません。