Dugen Chenは、HTML5の検証で「required」属性をDjangoフォームフィールドに追加することについて役立つ投稿を書きました。 http://duganchen.ca/elegantly-adding-html5-validation-attributes-to-django-form-fields/
また、HTML5パターン属性を自動的に含めて、これが私のフォームである場合は次のようにします。
class AccountEditForm(forms.Form):
email = forms.EmailField()
phone = forms.CharField(widget=forms.IntegerField)
次に、次のhtmlが作成されます。
<input type="email" name="email" id="id_email" required pattern="-email regex-" />
<input type="text" name="phone" id="id_phone" required pattern="-integer regex-" />
Dugenはこの方法を使用しました:
compose = lambda f, g: lambda *args, \
**kwargs: f(g(*args, **kwargs))
def html5_required(field):
if field.required != False:
field.widget.attrs['required'] = 'required'
return field
CharField = compose(html5_required, CharField)
フォームを次のように書くことができるように
class SampleForm(form):
text_field = CharField()
'required'属性が適切に追加されます
誰かがパターン属性に対して同様のことを行う方法を説明できますか?このすべてをデコレータで適用して、この混乱を別の場所に置くことができますか?
理想的には、各Djangoフォームフィールドに一致するように標準化された正規表現パターンのセットがあり、誰かがそれをDjangoに簡単に追加するための小さなライブラリを構築しましたか?
ありがとう!