質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.03%

Django、問い合わせフォームのタイトルの表示方法を変更したいです

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,071

score 33

前提・実現したいこと

以下のような問い合わせフォームを作りたいと思い、
問い合わせフォーム

以下の2ページを参考に、
Djangoでお問い合わせフォームをお手軽に実装する
Django、フォームの表示方法まとめ

タイトル、メールアドレス、問い合わせ内容がある問い合わせフォームを作りました。

発生している問題・エラーメッセージ

タイトル(メールの件名)を選択式にしたのですが、実際に問い合わせメールを送信すると、
タイトルが数字になってしまいます。

例えば、メールの件名を「お問い合わせ」としたいのに、件名は「1」となってしまいます。

該当のソースコード

不要そうなところは省略してあります。
urls.py

urlpatterns = [
    path('contact/', ContactView.as_view(), name='contact'),
    ]

views.py

class ContactView(FormView):
    template_name = 'app/contact.html'
    form_class = ContactForm
    success_url = reverse_lazy('app:index')

    def form_valid(self, form):
        form.send_email()
        return super(ContactView, self).form_valid(form)

forms.py

Inquiry_CHOICES = [
    (1, 'お問い合わせ'),
    (2, '機能改善要望'),
    (3, '問題のある口コミの報告'),
]
class ContactForm(forms.Form):

    title = forms.ChoiceField(label='タイトル', choices=Inquiry_CHOICES, initial=1,)
    mail_address = forms.EmailField(label='メールアドレス',)
    message = forms.CharField(label='お問い合わせ内容',)

    def send_email(self):
        subject = self.cleaned_data['title']
        message = self.cleaned_data['message']
        from_email = settings.EMAIL_HOST_USER
        to = [settings.EMAIL_HOST_USER]

        send_mail(subject, message, from_email, to)

お分かりになる方、何卒よろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

下記のような選択式ってことですよね?

<select name="good_point" id="id_good_point" multiple>
    <option value="1">丁寧な対応</option>
    <option value="2">良い人そう</option>
    <option value="3">お値段以上</option>
    <option value="4">高品質</option>
    <option value="5">素早い対応</option>
</select>


optionのvalueが送られるので、当然数字になります。
下記の様に変えれば日本語でも受け取れますが。。。

<select name="good_point" id="id_good_point" multiple>
    <option value="丁寧な対応">丁寧な対応</option>
    <option value="良い人そう">良い人そう</option>
    <option value="お値段以上">お値段以上</option>
    <option value="高品質">高品質</option>
    <option value="素早い対応">素早い対応</option>
</select>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/22 15:13

    ご指摘いただいたように変更したところ、出来ました!ありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.03%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る