2014-06-19 3 views
2

현재 사용자가 Django를 사용하여 양식을 통해 정보를 입력하면 데이터가 세션으로 저장됩니다. 그런 다음이 세션을 사용하여 다른보기에서 입력 된 데이터를 호출합니다. 내 URL에 이러한 세션에 저장된 입력 된 데이터를 사용할 수 있는지 궁금합니다.URL에 Django 세션 사용

url(r'^search/$', views.search, name='search'), 

내가로 저장되는 세션 사용할 수있는 방법이 있습니까 't = request.session.get ("틱")이'

def search(request): 
    result = {} 

    context = RequestContext(request) 

    t = request.session.get("tick") 

    if request.method == 'POST': 
     search = Search(data=request.POST) 


     if search.is_valid(): 
      ticker = search.cleaned_data['search'] 

      request.session["tick"] = ticker 

     else: 
      print search.errors 
    else: 
     search = Search() 

    return render_to_response('ui/search.html', {"result":result}, context) 

여기 내 해당 urls.py입니다 내 URL에 사용자가 입력 한 데이터와 일치하도록 URL을 가져올 수 있습니까? 예를 들어 사용자가 'hello'를 입력하면 내 URL에/search/hello가 표시됩니다.

감사합니다.

답변

0

예, 당신은 이런 식으로 작업을 수행 할 수 있습니다

urls.py

url(r'^search/$', views.search, name='search'), 
url(r'^search/(?P<query>.+)/$', views.search, name='search'), 

views.py

from django.http import HttpResponseRedirect 
from django.core.urlresolvers import reverse 

def search(request, query=None): 
    result = {} 
    context = RequestContext(request) 

    if request.method == 'POST': 
     search = Search(data=request.POST) 
     if search.is_valid(): 
      ticker = search.cleaned_data['search'] 
      return HttpResponseRedirect(reverse('search', kwargs={'query': ticker})) 
     else: 
      print search.errors 
    else: 
     search = Search() 

    return render_to_response('ui/search.html', {"result":result}, context)