0

장고 세션을 구현하는 데 문제가 있습니다. 나는 그것에 필터 옵션이있는 직원 목록 페이지가 있습니다. 필터링은 필드와 텍스트 상자에 입력 된 텍스트를 기반으로 수행됩니다. 필터링 된 사용자는 filter.html 페이지에 표시됩니다. 사용자 이름을 클릭하면 해당 사용자의 프로필 페이지로 이동합니다. 이제 필자는 필터링 된 사용자가 표시된 이전 페이지 (직원 프로필 페이지의 뒤로 단추가 있음)로 돌아가고 싶습니다 (filter.html). 세션을 통해이 작업을 수행 할 수 있습니다. 하지만 세션을 사용하는 방식이 정확한지 확신하지 못합니다. 장고를 처음 접했을 때이 문제를 해결하도록 도와주세요. 여기에 내 코드를 게시 할 예정입니다 :Django 세션 사용

def filter(request): 
    val=request.POST.get('designation')  
    val2=request.POST.get('choices') 
    val3=request.POST.get('textField') 

    if val2=='Designation':     
     newData = EmployeeDetails.objects.filter(designation=request.POST.get('textField')) 
     request.session['session_textField']="textField" 
     request.session['session_choices']="choices"  
     session_textField = request.session["session_textField"] 
     session_choices = request.session["session_choices"] 
     print session_textField,session_choices 
    elif val2=='Name': 
     newData = EmployeeDetails.objects.filter(userName=request.POST.get('textField')) 
     request.session['session_textField']="textField" 
     request.session['session_choices']="choices"  
     session_textField = request.session["session_textField"] 
     session_choices = request.session["session_choices"] 
     print session_textField,session_choices   
    elif val2=='EmployeeID': 
     newData = EmployeeDetails.objects.filter(employeeID=request.POST.get('textField'))   
     request.session['session_textField']="textField" 
     request.session['session_choices']="choices"  
     session_textField = request.session["session_textField"] 
     session_choices = request.session["session_choices"] 
     print session_textField,session_choices 
    elif val2=='Project': 
     newData = EmployeeDetails.objects.filter(project=request.POST.get('textField'))  
     request.session['session_textField']="textField" 
     request.session['session_choices']="choices"  
     session_textField = request.session["session_textField"] 
     session_choices = request.session["session_choices"] 
     print session_textField,session_choices  
    elif val2=='DateOfJoin': 
     newData = EmployeeDetails.objects.filter(dateOfJoin=request.POST.get('textField'))  
     request.session['session_textField']="textField" 
     request.session['session_choices']="choices"  
     session_textField = request.session["session_textField"] 
     session_choices = request.session["session_choices"] 
     print session_textField,session_choices 
    else: 
     return render_to_response('filter.html') 

    return render_to_response('filter.html',{'newData':newData,'val2':val2}) 

Filter.html을

<html> 
<h3><br><br> 
The Filtered Data 
</h3> 
<body> 
<br> 
{%for data in newData%} 
<a href ="http://10.1.0.90:8080/singleEmployee/{{data.id}} "> 
{{ data.userName}}<br> 
{%endfor%} 
</body><br><br><br><br> 
<a href ="http://10.1.0.90:8080/employeeList/ "> Home Page </a> 
</html> 

직원 프로필 HTML 페이지

<table> 
<tr> <td>Name: {{ empSelect.userName }} </td> </tr><td> 
<tr> <td>Designation: {{ empSelect.designation }} </td> </tr><td> 
<tr> <td>Employee ID: {{ empSelect.employeeID }} </td> </tr><td> 
<tr> <td>Contact Number: {{ empSelect.contactNumber }} </td> </tr><td> 
<tr> <td>Project: {{ empSelect.project }} </td> </tr><td> 
<tr> <td>Date Of Join: {{ empSelect.dateOfJoin }} </td> </tr><td> 
</table></h4><br> 
<input type="submit" value="Delete User" onClick="window.location.href='/userDelete/{{empSelect.id}}'"/> 
<input type="submit" value="Update User" onClick="window.location.href='/userUpdate/{{empSelect.id}}'"/> 
</div><br><br> 
<a href ="http://10.1.0.90:8080/filter/{{emp.id}} "> Back </a><br><br> 
<a href ="http://10.1.0.90:8080/employeeList/ "> Home Page </a> 
</body></html> 

내가 제공 한 코드가 오류가 많은 경우 수정 좀 도와주세요 그것.

+0

그래서 ... 오류가 다시 무엇입니까? –

+0

직원 프로필 페이지에서 '뒤로'버튼을 클릭 할 때 세션 값을 가져올 수 없습니다. –

+2

뒤로 버튼을 누르면 페이지가 다시로드되지 않습니다. –

답변

1

당신이하려는 일은 전혀 명확하지 않습니다. 그러나이주의 사항 :

모든 블록에서 동일이 두 라인,
request.session['session_textField']="textField" 
request.session['session_choices']="choices" 

, 단순히 문자열 "에 textField"과 "선택"에 두 개의 세션 변수를 설정합니다. 나는 당신이 무엇을하고 싶은지는 모르겠다. 비록 내가 위에서 말했듯이 정확히 당신이 무엇인지 모른다. do. 그러나, 이것은 초보 프로그래밍 문제로 보인다. 특히 장고 세션과 관련이 없다.