2017-06-15 20 views
0

フォームを送信すると、私の端末は「POST/polls/HTTP/1.1」というメッセージを表示します。200 851. python manage.pyシェルをチェックすると、表示されます。私はなぜデータがsqliteであるdbに保存されていないのか分かりません。フォームを保存しようとするとエラーがビューセクションにあると思います。私は、似たような問題を抱えているように見える別の投稿を読んだが、私の問題が何であるか把握できないようだ。DjangoフォームデータがDBに保存されない

モデル:

from django.db import models 
class Stores(models.Model): 
    name = models.CharField(max_length=200) 
    address = models.CharField(max_length=30) 
    city = models.CharField(max_length=30) 
    state = models.CharField(max_length=2) 
    def __str__(self): 
     return "%s (%s,%s) %s" % (self.name, self.city, self.state, 
     self.address) 

フォーム:

from django.forms import ModelForm 
from mysite.polls.models import Stores 

    class StoreForm(ModelForm): 
     class Meta: 
      model = Stores 
      fields = ['name','address','city','state'] 

再生回数:

from django.shortcuts import render 
from django.http import HttpResponse, HttpResponseRedirect 
from django.core.urlresolvers import reverse 

from mysite.polls.models import Stores 
from mysite.polls.forms import StoreForm 

def index(request): 
    downtown_store = Stores.objects.get(name="Corporate") 
    store_name = downtown_store.name 
    store_address = downtown_store.address 
    store_state = downtown_store.state 
    if request.method == 'Post': 
     form = StoreForm(request.POST) 
      if form.is_valid(): 
       form.save(commit=True) 
       return HttpResponseRedirect(reverse('index')) 
    else: 
     form = StoreForm() 

     context = {'store_name':store_name, 'store_address':store_address, 'store_state':store_state, 'form':form,} 

     return render(request,'polls/index.html',context) 

テンプレート:

<html> 
    <body> 
     <h1> {{store_name}} </h1> 
     <h2> {{store_address}} </h2> 
     <h3> {{store_state}} </h3> 

    <form action="{% url "index" %}" method="post"> 
     {% csrf_token %} 
     {{ form }} 
     <input type="submit" value="Submit" /> 
    </form> 

+0

いいえ、DBからデータを取得してテンプレートに表示する方法をテストしていました。将来のために知っておくべき情報、ありがとう。 – Jahmul14

答えて

1

このメソッドはすべて大文字である必要があります。

if request.method == 'POST': 

注:ビューの最後の2行は、1つ左にインデントされている必要があります。

+0

完全にそれを逃した、ありがとう!それは今働く。 – Jahmul14

関連する問題