2017-10-24 8 views
0

データベースにフォームフィールドを保存できません。私はdjangoのPlayerモデルを見ると、常に0のデータがあるので、保存していないことがわかります。もし誰かが見て修正することができたら、私はとても感謝しています。

Djangoフォームがデータベースに保存されません

models.py -

from django.db import models 

class Player(models.Model): 
    player_one_name = models.CharField(max_length=30, default='') 
    player_two_name = models.CharField(max_length=30, default='') 

forms.py -

from django import forms 

class PlayerInfo(forms.Form): 
    player_one_name = forms.CharField(max_length=30, label='First player name') 
    player_two_name = forms.CharField(max_length=30, label='Second player name') 

views.py

from django.http import HttpResponse, HttpResponseRedirect 
from django.shortcuts import render, render_to_response 
import os 
from .forms import PlayerInfo 
from .models import Player 

def start(request): 
    if request.method == 'POST': 
     form = PlayerInfo(request.POST) 
     if form.is_valid(): 
      obj = Player() 
      obj.player_one_name = form.cleaned_data['player_one_name'] 
      obj.player_two_name = form.cleaned_data['player_two_name'] 
      return HttpResponseRedirect('game/') 

    else: 
     form = PlayerInfo() 

     args = {'form': form} 
     return render(request, 'start.html', args) 

start.htmlここ - 各プレイヤーの名前を提出することを意図

{% block botRow %} 
    <form method="post"> 
     {% csrf_token %} 
     {{ form.as_p }} 
     <button type="submit">Submit</button> 
    </form> 
{% endblock %} 

game.html -

{% extends 'base.html' %} 
{% block midRow %} 
    <p>{{ fpn }}</p> 
    <p>{{ spn }}</p> 
{% endblock %} 
+0

インデントを修正してください。 – schwobaseggl

+1

おそらく、 'ModelForm'を使いたいでしょう。 –

+0

コードが更新され、いくつかのエラーが修正されました。しかしそれはまだデータベースに保存されていません。 –

答えて

1

各プレイヤーの名前を描画することを意図リクエストメソッドがすべて大文字に常にあります。

if request.method == 'POST': 
+0

こんにちは、それは小文字ですか?私が従っていたチュートリアルでは、それを大文字で書いていたので、すべての帽子に入れました。 –

+0

いいえ、あなたが持っているように大文字と小文字が混在しているわけではありません。 –

+0

さて、この問題は修正されました。しかし、それはまだdatabseに投稿されません。 –

関連する問題