DjangoでPOST後が処理されない。
Q&A
Closed
解決したいこと
Djangoで送信テストをしています。
初期表示のブラウザ画面には求めていたものは表示されているのですが、
「送信」ボタンを押しても、views.py のindex_test(request)の処理に流れていない様子。
しかし、POSTはされています。
index_test(request)の処理が実行されて、ブラウザ画面のresurtに’OK’が表示される
ようにしたいのですが、\mySite\myapp\urls.pyの記載内容が違うのでしょうか?
ターミナルの結果
[28/Mar/2021 17:16:11] "GET /myapp/templates/ HTTP/1.1" 200 740
[28/Mar/2021 17:16:18] "POST /myapp/templates/ HTTP/1.1" 200 740
[28/Mar/2021 17:17:37] "GET /myapp/templates/ HTTP/1.1" 200 742
[28/Mar/2021 17:17:43] "POST /myapp/templates/ HTTP/1.1" 200 742
該当するソースコード
\mySite\mySite\urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')),]
\mySite\myapp\urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url('templates/', views.index_template, ),
url('index', views.index_test),
]
\mySite\templates\index.html
<html>
<head>
<title>template test</title>
</head>
<body>
<form action="" method="POST">
{% csrf_token %}
{{app}} </br>
{{test_name}}</br>
{{resurt}}</br>
{{ form }}</br>
<input type="submit" value="送信"/>
</form>
<p>This is template test.</p>
</body>
</html>
\mySite\myapp\views.py
from django.shortcuts import render
from django.http.response import HttpResponse
from .forms import MyForm
def index_template(request):
form = MyForm()
myapp_data = {
'app': 'Django',
'resurt': 'Ng',
'test_name': 'dddd',
'form': form
}
return render(request, 'index.html', myapp_data)
def index_test(request):
myapp_data = {
'resurt': 'ok',
'form': form
}
if request.method == "POST":
print('ok')
else:
print('ng')
return render(request, 'index.html',myapp_data)
自分で試したこと
きっとここだよなと感じ。。myapp\urls.pyの編集をいろいろと。
url('index', views.index_test) → url('index.html', views.index_test)
0