Djangoのお問い合わせフォームをいい感じにカスタマイズする
2017/02/13 12:32
  • DjangoのFormViewを使えば、かなりお手軽に気の利いたフォームを
    作ってくれるのは、Djangoでお問い合わせフォームをお手軽に実装するで書いたとおり
    ですが、CSSのclassを独自に当てたり、フィールド名を日本語にしようとした時に少し詰まってしまったのでその覚書です。

    Djangoでお問い合わせフォームをお手軽に実装する

    上記記事の続編となります。

    実現したいこと

    ・いい感じにbootstrapっぽいCSSを適用したい
    ・フィールド名を日本語にしたい
    ・必須項目のフィールドを設定したい (required)

    とまぁこんな感じです。

    やったこと


        name = forms.CharField(label='お名前', required=True, widget=forms.TextInput(attrs={'class': 'form-control reset-border-radius',}))
        email = forms.EmailField(label='メールアドレス', required=True, widget=forms.TextInput(attrs={'class': 'form-control reset-border-radius',}))
        message = forms.CharField(label='お問い合わせ内容', widget=forms.Textarea(attrs={'class': 'form-control reset-border-radius',}), required=True)
    

    たとえば上記のように設定しました。

    label ・・・フィールドの表示名を変更します。■ required ・・・必須項目かどうか■ widget ・・・生成されるフォームの振る舞いをより細かく指定します。attrs ・・・タグに属性を追加します。上記例の場合、inputタグにclass属性を追加しています。
    出力されたフォームは以下のようになりました。

    sample image

    自由にCSSを適用できることで、更に汎用性が高まるので、フォームの部品を一つ一つ記述していく必要がなくなりそうですね。
    また、フィールドのエラーについても自動で出力してくれるので更に素敵です。(๑•̀ㅁ•́๑)✧

    sample image

    もちろんこれだけではなく、DjangoのFormViewには様々なオプションが用意されています。
    詳細は公式サイトを御覧ください…(回し者感)

    https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/

    オプション多すぎ(´・ω・`)


    人気ブログランキングへ ブログランキング・にほんブログ村へ
    ↑応援よろしくお願いします!m(_ _)m

  • <2017/02/05 00:13>
  • Python
  • DjangoPythonFormFormViewCSSタグオプションフィールド名変更
  • 新しい記事へ
    Webサイト高速化のために行った6つのこと(1)

    古い記事へ
    Djangoでお問い合わせフォームをお手軽に実装する

profile picture

自己紹介的な何か

@wkmettyでついったーやってます。時々。 6年間勤めたゲーム会社を2018年2月に退職しフリーランスのプログラマに。 WordPress Core, WP-CLI コントリビューター。 お仕事募集中です。