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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

0回答

404閲覧

Django 入力フォームの確認画面を表示したい

LUCKEY113

総合スコア4

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2022/12/14 08:21

前提

Djangoで入力フォームを作ろうと考えています.
「Python Django3 超入門」と「動かして学ぶ Python Django開発入門 第2版」の2冊を基に
入力フォームに入力するとフォームの上側に確認画面が出来るようにしたいです.

ですが下記のエラーが出てしまい入力フォームが表示できません.
1つ目の本のサンプル(myapp)と2つ目の本のサンプル(hello)を同じプロジェクト内に作っています.
settings.pyでtemplateの設定はしているのですが正確に表示されません.
どのようにしたら入力フォームが表示できるようになるでしょうか.

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

TemplateDoesNotExist at

該当のソースコード

views.py

1from django.shortcuts import render 2from django.urls import reverse_lazy 3from django.http import HttpResponse 4 5from django.views import generic 6from django.views.generic import TemplateView 7from .forms import InquiryForm 8 9 10class IndexView(generic.TemplateView): 11 template_name = "index.html" 12 13 14class InquiryView(TemplateView): 15 template_name = "myapp/inquiry.html" 16 17 def __init__(self): 18 self.params = { 19 'message': 'your data', 20 'form': InquiryForm() 21 } 22 23 def get(self, request): 24 **return render(request, 'myapp/inquiry.html' , self.params)** 25 26 def post(self, request): 27 msg = 'name、<b>' + request.POST['name'] + 'email </b>' + request.POST['email'] + \ 28 'title <b>' + request.POST['title'] + '</b> message' + request.POST['message'] 29 self.params['message'] = msg 30 self.params['form'] = InquiryForm(request.POST) 31 return render(request, 'myapp/inquiry.html' , self.params)

urls.py

1from django.urls import path 2 3from . import views 4from .views import InquiryView 5 6 7app_name = 'myapp' 8urlpatterns = [ 9 path('', views.IndexView.as_view(), name="index"), 10 path(r'inquiry/',views.InquiryView.as_view(),name="inquiry"), 11 12] 13

forms.py

1from django import forms 2 3 4class InquiryForm(forms.Form): 5 name = forms.CharField(label='お名前', max_length=30) 6 email = forms.EmailField(label='メールアドレス') 7 title = forms.CharField(label='タイトル', max_length=30) 8 message = forms.CharField(label='メッセージ', widget=forms.Textarea) 9 10 def __init__(self, *args, **kwargs): 11 super().__init__(*args, **kwargs) 12 13 self.fields['name'].widget.attrs['class'] = 'form-control' 14 self.fields['name'].widget.attrs['placeholder'] = 'お名前をここに入力してください。' 15 16 self.fields['email'].widget.attrs['class'] = 'form-control' 17 self.fields['email'].widget.attrs['placeholder'] = 'メールアドレスをここに入力してください。' 18 19 self.fields['title'].widget.attrs['class'] = 'form-control' 20 self.fields['title'].widget.attrs['placeholder'] = 'タイトルをここに入力してください。' 21 22 self.fields['message'].widget.attrs['class'] = 'form-control' 23 self.fields['message'].widget.attrs['placeholder'] = 'メッセージをここに入力してください。' 24

inquiry.html

1{% extends 'base.html' %} 2 3{% block title %}お問い合わせ | Private Diary{% endblock %} 4 5{% block active_inquiry %}active{% endblock %} 6 7 8{% block contents %} 9<div class="container"> 10 <div class="my-div-style"> 11 <h1 class="display-4 text-primary">{{title}}</h1> 12 <p class="h5 mt-4">{{message|safe}}</p> 13 <form action="{% url 'inquiry' %}" method="post"> 14 {% csrf_token %} 15 16 {{ form.non_field_errors }} 17 18 {% for field in form %} 19 <div class="mb-4 col-8"> 20 <label for="{{ field.id_for_label }}" class="form-label"> 21 <strong>{{ field.label_tag }}</strong> 22 </label> 23 {{ field }} 24 {{ field.errors }} 25 </div> 26 27 {% endfor %} 28 <input type="submit" class="btn btn-primary " value="click"> 29 30 </form> 31 32 </div> 33</div> 34{% endblock %}

試したこと

https://freeheroblog.com/template-settings/
https://udomomo.hatenablog.com/entry/2018/08/14/234153

上記のサイトを参考にしてSettings.pyをいじったりしても出てきました.
2つのアプリごとにSettings.pyにTemplatesを設定しなければいけないのかも分かりません.

補足情報(FW/ツールのバージョンなど)

・Windows10
・Django4.1.3
・Python3.10.8
・xampp

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuma.inaura

2022/12/14 10:31

TemplateDoesNotExist at に続くエラーメッセージはありませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問