好的,这就是我想要做的事情:
用户在表中看到许多分配,每个分配使用分页器进行分页。用户可以在字段中输入数字并单击“开始”,然后将其带到页面。
到目前为止,这是我的代码:
查看:
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不能正常工作?
答案 0 :(得分:0)
如果GoToForm
表单类看起来很简单(例如,它只有page
字段),则根本不需要使用此表单类。只需在模板中手动添加表单字段,并在需要时在后视图中验证它们。
此案例的Formset将是过度的。
另请注意更改id="form"
以使其对每个表单都是唯一的,或者改为使用class="form"
。