0

기본적으로, 나는 결과를 보여주기 위해 검색 폼과 테이블을 가지고있는 템플릿을 가지고있다. 헤더 열을 클릭하면 결과를 정렬 할 수 있습니다. 검색 양식에 get 방법을 사용하고 테이블의 결과를 으로 정렬하여 마지막으로을 얻습니다.HTML 페이지에서 URL 매개 변수를 django로 동적으로 바꾸는 방법은 무엇입니까?

views.py

if sort_by == "desc": 
    order_by = order_by 
    sort_by = "asc" 
else: 
    sort_by = "desc" 

url = request.META.get('HTTP_REFERER') 
if (url != None): 
    search_params = {} 
    param = urlparse.urlparse(url) 
    if (not 'search_button' in request.GET): 
     get_request = re.split('&',param.query) 
     for single_request in get_request: 
      search_query = re.split('=',single_request) 
      search_params[search_query[0]] = search_query[1] 
     userlist = show_data(order_by,sort_by,search_params) 
    else: 
     userlist = show_data(order_by, sort_by, request.GET) 

def show_data(order_by, sort_by, get_data): 
    //the function get the value from db 
    return row 

template.py

<table id="user-table"> 
    <tr> 
     <th><a href="?order_by=userId&sort={{sort}}">User id</a></th> 
     <th><a href="?order_by=userName&sort={{sort}}">Name</a></th> 
     <th><a href="order_by=userAddr&sort={{sort}}">Address</a></th> 
    </tr> 
    <tbody> 
{% for item in table_data %} 
<tr> 
    <td>{{ item.userId|default_if_none:"" }}</td> 
    <td>{{ item.userName|default_if_none:"" }}</td> 
    <td>{{ item.userAddr|default_if_none:"" }}</td> 
</tr> 

필터링 테이블 결과 데이터를 정렬 할 수있는 탐색 양식. 여기 샘플 URL입니다 다음 URL이 변경 이후 다시 정렬 할 수없는,

열 머리글이

http://localhost:8080/userlist/?order_by=userAddr&sort=asc 

그러나 클릭하면 검색 버튼을

http://localhost:8080/userlist/?userId=&userName=Jane&userAddr=&search_button=search 

클릭 할 경우 search_param did not get get userName=Jane

HTML 페이지에서 url 매개 변수를 동적으로 바꿀 수 있습니까? 열 머리글을 클릭하면 낮습니까?

http://localhost:8080/userlist/?userId=&userName=Jane&userAddr=&search_button=search&order_by=userAddr&sort=desc 

감사합니다. 모든 제안이 고려됩니다.

답변

0

검색 콘텐츠를 컨텍스트와 함께 보내지 않는 이유는 무엇입니까? 예를 들면 :

의 당신이 결과를 렌더링이보기를 사용하고 있다고 가정 해 봅시다 : HTML에서

def some_view(request): 
    # Do your search mechanism 
    search_items = [] 
    for key, value in search_params.items(): 
     search_items.append('{}={}'.format(key, value)) 

    return render(request, 'myapp/index.html', { 
    'user_list': userList, 
    'search_param': '&'.join(search_items) 
    }, content_type='application/xhtml+xml') 

: 작동

<tr> 
     <th><a href="?order_by=userId&sort={{sort}}&{{search_param}}&search_button=search">User id</a></th> 
     <th><a href="?order_by=userName&sort={{sort}}&{{search_param}}&search_button=search">Name</a></th> 
     <th><a href="order_by=userAddr&sort={{sort}}&{{search_param}}&search_button=search">Address</a></th> 
</tr> 
+0

을! 대단히 감사합니다 @rudda – natadecoco