paginator를 사용하여 특정 기준을 만족하는 일련의 페이지를 만듭니다.
각 페이지에는 사용자가 제출할 수있는 양식이 있습니다.
양식을 제출하면 해당 페이지에 머물러 있기를 원합니다. 어떻게하면됩니까?
나는 어디에서나 검색하고 문서를 읽었지만 대답을 찾을 수 없습니다.
나는 문제가 컴퓨터 앞에 확신하지만, :)양식 제출 후 페이지가 매겨진 페이지로 리디렉션 - Django
는 다음에 도움이 작업을 수행해야 뷰가하십시오
def assignment(request, pk):
"""View for each assignment"""
if request.user.is_authenticated():
#### Get correct articles
assignment = get_object_or_404(Assignment, pk=pk)
country = assignment.country.ccode
start_date = assignment.start_date
end_date = assignment.end_date
articles = Article.objects.filter(country=country).filter(pub_date__range=(start_date,end_date))
paginator = Paginator(articles, 1)
#### Pagination ####
page = request.GET.get('page')
try:
articles = paginator.page(page)
except PageNotAnInteger:
articles = paginator.page(1)
except EmptryPage:
articles = paginator(page(paginator.num_pages))
#### Forms ####
if request.method == 'POST':
if 'event' in request.POST:
event_form = EventRecordForm(request.POST, prefix='event')
if event_form.is_valid():
obj = event_form.save(commit=False)
obj.article = paginator.page(page).object_list[0]
obj.classified = True
obj.coder = request.user.coder
obj.save()
return HttpResponseRedirect(reverse ('coding:assignment', args=(pk,)))
relevance_form = RelevanceCodingRecordForm(prefix='relevance')
elif 'relevance' in request.POST:
relevance_form = RelevanceCodingRecordForm(request.POST, prefix='relevance')
if relevance_form.is_valid():
obj = relevance_form.save(commit=False)
obj.article = paginator.page(page).object_list[0]
obj.screened = True
obj.coder = request.user.coder
obj.save()
return HttpResponseRedirect(reverse ('coding:assignment', args=(pk,)))
event_form = EventRecordForm(prefix='event')
else:
event_form = EventRecordForm(prefix='event')
relevance_form = RelevanceCodingRecordForm(prefix='relevance')
else:
print ERROR
return render(request, 'coding/assignment.html',
{'articles':articles,'assignment':assignment,'event_form':event_form,'relevance_form':relevance_form})
편집 :
관련 제안 나는 그 내 양식 작업에 ?next={{request.path}}
을 추가하십시오.
그러나 페이지 매김 페이지가 경로에 포함되어 있지 않으므로이 기능은 작동하지 않습니다. 이 http://127.0.0.1:8000/coding/assignment/1/?next=/coding/assignment/1/
그래도 난 매기기에게 두번째보기를주고, ?page={{ articles.number }}
작동해야한다고 생각 않았고, 때문에 그들은이 같은 링크를 수행 문서의 예제에서 :이 아무튼
<a href="?page={{ articles.next_page_number }}">next</a>
그러나이 그는 이런 제안 무엇을 일하지 마라.
다른 아이디어가 있습니까? ?
다음 = {{request.path}}
및 확인 :
슬프게도 요청에 없습니다. 경로, 내 질문을 업데이트했습니다. 하지만 고마워! :) – LukasKawerau