【发布时间】:2017-12-11 01:26:45
【问题描述】:
您好,我正在尝试开发一个简单的 django 应用程序,但在访问表单数据时遇到了问题。我已经广泛地查看了 django 的文档以及关于同一主题的许多问题,但没有任何效果。这是我视图中的代码,否则可以正常工作:
def post(self, request):
"""Return only the games from the upcoming gameweek"""
form = GWForm(request.POST)
if form.is_valid():
curr_gw = form.cleaned_data['gweek']
args = {'form': form, 'this_gw_fixtures': Game.objects.filter(gweek=curr_gw), 'curr_gw': curr_gw}
return render(request, self.template_name, args)
else:
curr_gw = 17
form = GWForm()
args = {'form': form, 'this_gw_fixtures': Game.objects.filter(gweek=curr_gw), 'curr_gw': curr_gw}
return render(request, self.template_name, args)
这是我的模板代码:
<form action="/predict/" method="post">{% csrf_token %}
<label for="Gameweek">Gameweek: </label>
<input id="gwparam" type="number" value="{{ curr_gw }}" min="17" max="40">
<input type="submit" value="Go">
</form>
{% if this_gw_fixtures %}
<ul>
{% for game in this_gw_fixtures %}
<li><a href="{% url 'predict:detail' game.id %}">{{ game }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No game predictions are available for this gameweek.</p>
{% endif %}
我正在尝试做的是获取选择表单的输入并呈现在表单中选择的游戏周中的游戏列表。最少 17 个,最多 40 个。这是我的表单代码。
class GWForm(forms.Form):
gweek = forms.ChoiceField(required = False, choices=[(x, x) for x in range(17, 40)])
但是当我尝试从表单中获取 gweek 时,is_valid() 返回 true,但 form.cleaned_data['gweek'] 根本不返回任何值。任何帮助,将不胜感激。提前致谢。
【问题讨论】:
标签: django django-forms