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

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

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

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

Python

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

Q&A

解決済

1回答

4232閲覧

【Django】formで入力した値がmodelに保存されない。

ToEi

総合スコア11

Django

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

Python

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

0グッド

0クリップ

投稿2016/08/16 13:09

編集2016/08/16 13:11

(例)Djangoでフォームの学習をしているのですが、formから値を入力すると、{% csrf_token %}を入れてるにも関わらず403エラーがでます。

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

アクセス禁止 (403) CSRF検証に失敗したため、リクエストは中断されました。

###該当のソースコード

--------- models.py --------- from django.db import models class Item(models.Model): test = models.CharField(max_length=64) --------- views.py --------- from django.shortcuts import render, redirect, render_to_response, get_object_or_404 from django.http import HttpResponseRedirect, HttpResponse from django.core.urlresolvers import reverse from models import Item from django import forms class ItemForm(forms.ModelForm): class Meta: model = Item fields = '__all__' def test(request): form = ItemForm(request.POST or None) if request.method == 'POST': if form.is_valid(): form.save() return redirect('account:mypage') else: form = ItemForm() return render_to_response('enquete/test.html',dict(form=form)) --------- urls.py --------- from django.conf.urls import url from apps.enquete import views urlpatterns = [ url(r'^test$', views.test, name='test'), ] --------- test.html --------- <form method="POST" action="{% url "enquete:test" %}"> {% csrf_token %} {{ form.test.label}} {{ form.test }} <button type="submit">submit</button> </form>

###その他補足情報
Windows7、Django1.9、Python2.7

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

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

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

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

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

argius

2016/08/16 15:00

Webブラウザーは何をお使いですか? 他のブラウザーで試すことができたら、そのブラウザーでも同じ結果になりますか?
guest

回答1

0

ベストアンサー

対応するビューの内部で、 'django.core.context_processors.csrf' コンテキストプロセッサーを使用出来るようにします。通常、2つの方法のうち、 どちらかの方法を選択します。

クロスサイトリクエストフォージェリ (CSRF) 対策 — Django 1.4 documentation

とドキュメントにあり、ご提示のソースを見るとCSRFトークンが渡っていないように思えます。

投稿2016/08/17 01:33

Lhankor_Mhy

総合スコア36115

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

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

ToEi

2016/08/22 05:49

こちらで解決できました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問