跳转到Django中的页面

时间:2013-10-23 11:01:38

标签: django forms django-pagination

好的,这就是我想要做的事情:

用户在表中看到许多分配,每个分配使用分页器进行分页。用户可以在字段中输入数字并单击“开始”,然后将其带到页面。

到目前为止,这是我的代码:

查看:

def home(request):
if request.user.is_authenticated():
    assignments = show_assignments(request)

    form=GoToForm(request.POST or None)
    if request.POST and form.is_valid():
        form = form.cleaned_data
        assignment = form["assignment"]
        page = form["page"]
        return HttpResponseRedirect("/coding/assignment/%i/?page=%i") % (assignment, page)

    return render(request, 'account.html', {'assignments':assignments, 'form':form})

模板:

{% for assignment in assignments %}
    <tr>
        <td><a href="{% url 'coding:assignment' assignment.id %}">
        {{ assignment.country }}: {{ assignment.start_date }} to {{ assignment.end_date }}</a></td>
        <td>{{ assignment.finished_articles }} of {{ assignment.article_num}} articles finished </td>
        <td><a href="/coding/assignment/{{ assignment.id }}/?page={{ assignment.last_updated}}">Start where I left off</a></td>
        <td>
            <form id="form" action="" method="post" accept-charset="utf-8">
                {% csrf_token %}
                Jump to page {{ form.page }}
                <input type="hidden" name="" value="{{ assignment.id }}" id="id_assignment">

                <input type="submit" value="Go">
            </form>
        </td>
    </tr>
{% endfor %}

这不起作用。 这是因为我需要使用formset(因为我在一个页面上有多个GoToForms),或者HttpResponseRedirect不能正常工作?

1 个答案:

答案 0 :(得分:0)

如果GoToForm表单类看起来很简单(例如,它只有page字段),则根本不需要使用此表单类。只需在模板中手动添加表单字段,并在需要时在后视图中验证它们。

除非你有很多输入字段可供使用,否则

此案例的Formset将是过度的。

另请注意更改id="form"以使其对每个表单都是唯一的,或者改为使用class="form"