2013-05-04 3 views
0

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}}

및 확인 :

답변

0

나는 페이지 매개 변수가 request.path에, 그래서 템플릿의 제출 액션이 추가 시도해야한다고 생각 settings.py 파일에 템플릿 컨텍스트 프로세서로 요청할 수 있습니다. (자세한 내용은 https://stackoverflow.com/a/1711592/837845을 참조하십시오.)

+0

슬프게도 요청에 없습니다. 경로, 내 질문을 업데이트했습니다. 하지만 고마워! :) – LukasKawerau

관련 문제