データベースにフォームフィールドを保存できません。私は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 %}
インデントを修正してください。 – schwobaseggl
おそらく、 'ModelForm'を使いたいでしょう。 –
コードが更新され、いくつかのエラーが修正されました。しかしそれはまだデータベースに保存されていません。 –