有人能修改我的代码吗?
背景:
用户,一旦在'开始.html'模板,将输入其名称并按submit。然后在下一个模板上,'游戏.html'中,应该有一个包含该用户名的段落选项卡。
问题:
我一定是写错了什么,因为用户名没有呈现在'游戏.html'模板。或者,我也可能是存储错误。如有任何建议或更正,将不胜感激!在
在模型.py-计划生育
from django.db import models
class Player(models.Model):
#first player name
fp_name = models.CharField(max_length=30, default='')
在表单.py-我不确定这是否真的需要。。。?在
^{pr2}$在视图.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 index(request):
return render(request, 'index.html')
def start(request):
if request.method == 'Post':
form = PlayerInfo(request.POST)
if form.is_valid():
obj = Player()
obj.fp_name = form.cleaned_data['fp_name']
return HttpResponseRedirect('/')
else:
form = PlayerInfo()
return render(request, 'start.html')
def game(request):
return render_to_response('game.html', {'obj': Player.objects.all()})
在开始.html-意思是提交一个玩家的名字
{% extends 'base.html' %}
{% block botRow %}
<form method="post">
{% csrf_token %}
<label for="fp_name">First Player Name</label>
<input id="fp_name" type="text" name="fp_name" maxlength="30" required />
<input type="submit" value="Submit" />
</form>
{% endblock %}
在游戏.html-是为了给玩家一个名字
{% extends 'base.html' %}
{% block midRow %}
<p>{{ obj.fp_name }}</p>
{% endblock %}
使用用户.objects.all()您正在获取站点所有用户的集合。它不是当前用户。因此,集合没有参数fp_name。使用请求.用户获取当前登录用户。在
在某些代码中,也存在冗余:
在您的
game.html
中,obj
是所有Users
的查询集,因此您应该遍历列表,查看文档中的块{a1}:相关问题 更多 >
编程相关推荐