0

我试图在页面之间传递一些数据,但它不起作用。有小费吗?我单击提交,它会将我带到一个空白页面。如果我刷新,那么它会显示我的基本模板样式,但没有传递任何数据。

索引.html

{% extends "polls/base.html" %}

{% block title %}Vote{% endblock %}


{% block content %}

<h1>Welcome</h1>

<form action="/polls/" method="post">{% csrf_token %}
<p><label for="pin">Enter group pin:</label>
    <input id="pin" type="text" name="pin" maxlength="4" />
  <input type="submit" value="View Polls" /></p>
</form>

    <a href="admin/">Moderator login</a>

</p>

{% endblock %}

民意调查/index.html

{% extends "polls/base.html" %}

{% block title %}Recent Polls{% endblock %}

{% block content %}

{{ pin }}

{% endblock %}

民意调查/urls.py

url(r'^$',
        ListView.as_view(
            model=Poll,
            template_name='polls/index.html')),
4

1 回答 1

0

您需要编写一个视图来处理表单提交。有效的视图是列出您的所有民意调查。我建议你阅读教程:

基本视图:https ://docs.djangoproject.com/en/1.4/intro/tutorial03/ 表单提交:https ://docs.djangoproject.com/en/1.4/intro/tutorial04/

基本上,您的表单会将数据发送到另一个处理您的数据的 URL。

您必须在action属性中指定它:

<form action="/polls/create-poll" method="post">{% csrf_token %}
<input type='text' name='poll-name' />
<input type='submit' />
</form>

在您看来:

def create_poll(request):
    poll_name = request.POST.get('poll-name')
    poll = Poll.objects.create(name=poll_name)
    return HttpResponse("Poll created")

我不想听起来粗鲁。但是您应该从一些 HTTP 和 HTML 教程开始。一个好的网络程序员是一个对基本知识有详细了解的人。HTTP 是一个很棒的协议,尝试从头到尾学习它。

于 2013-02-04T20:55:00.683 回答