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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Django

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

受付中

DjangoでMethod Not Allowed(POST)となってしまう

daaa
daaa

総合スコア0

Django

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

0回答

0評価

0クリップ

5閲覧

投稿2020/01/23 07:53

Djangoで掲示板のようなアプリケーションを作成しているのですが、書き込みたい内容を打ち込んだ後に、書き込んだ内容を表示するページに移動するようにしたのですが、ターミナル側に
Method Not Allowed(POST):/post/
Method Not Allowed: /post/
と出てきてしまいます。
どこを修正すればよいでしょうか?

Django

view.pyのコード from django.shortcuts import render from django.views.generic import View from .form import PostForm from.models import Keijiban # Create your views here. class IndexView(View): def get(self,request,*args,**kwargs): queryset = Keijiban.objects.all() return render(request,'keijiban_app/keijiban_app.html',{'submits':queryset}) index=IndexView.as_view() class PostView(View): def get(self,request,*args,**kwargs): return render(request,'keijiban_app/post.html',{'form':PostForm}) def submit(self,request,*args,**kwargs): form=PostForm(request.POST) submit=form.save(commit=False) submit.save() return redirect('index') post=PostView.as_view()

Django

url.pyのコード from django.contrib import admin from django.urls import include,path urlpatterns = [ path('admin/', admin.site.urls), path('',include('keijiban_app.urls')) ]

Django

アプリケーションフォルダ(keijiban_app)内のurl.py from django.urls import path from . import views app_name='keijiban_app' urlpatterns=[ path('',views.index,name='index'), path('post/',views.post,name='post'), ]

Django

書き込みたい内容を打ち込む画面のテンプレート(post.html) {% extends 'layout.html' %} {% block pagetitle %}投稿画面{% endblock %} {% block title %}投稿画面{% endblock %} {% block content %} <form action="{% url 'keijiban_app:post' %}" method="post" > {% csrf_token %} {{form.as_p}} <button type="submit" class="button">投稿する</button> </form> {% endblock %}

Django

書き込んだ内容を表示する画面のテンプレート(keijiban_app.html) {% extends 'layout.html' %} {% block pagettile %}掲示板{% endblock %} {% block title %}投稿一覧{% endblock %} {% block content %} {% for submit in submits %} <div class="submit"> <p class="title">{{submit.title}}</p> <p class="content">{{submit.content}}</p> </div> {% endfor %} {% endblock %}

Spyderで書いているのですが、view.pyの22行目に"undefined name 'redirect'"と表示されています。

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

dameo
dameo

2020/01/23 18:20

最後の1文しか読んでませんが、 from django\.shortcuts import render を from django\.shortcuts import render, redirect にした方がいいです
daaa
daaa

2020/01/24 05:22

コメントありがとうございます 追記した結果、Spyderではエラーは消えましたが問題は解決できませんでした… おそらく基本的なところでミスしているのだとおもうのですが…
dameo
dameo

2020/01/24 17:08

ちゃんとチュートリアルをやって見比べてください 適当に書いたコードでは一生動きません

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Django

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。