2013-03-11 1 views
0

일부 알고리즘을 실행하고 항목이로드되는 템플릿 (product.html)에 항목을 전달하는보기 (views.loaditems)가 있으며 각 항목에는 " add_to_shortlist "링크를 클릭하십시오. 이 링크를 클릭하면 항목이 사용자의 후보 목록에 추가됩니다 (기능이있는 경우). 나는 그것을 클릭하고 페이지를 다시로드하지 않고 항목을 가지고 싶지만 사용자의 후보 목록에 해당 항목을 추가하기 만하면됩니다. 또한이 단축키 기능은 어디에서 정의해야합니까?Django- 다시 매핑하지 않고 동일한보기로 리디렉션

저는 장고를 처음 사용하는데 도움이 될만한 도움이 될 것입니다. 감사.

업데이트 :

는 urls.py에서 저를 필요
<div class="slist"><a href="/usersl/{{user.id}}/{{ deal.id }}"></a></div> 

가 views.usersl하기 : 내가 가진

내 index.html을에서
def loaditems(request): 
    #some code 
    ourdeals = SDeals.objects.filter(**{agestring3:0}) 
    sorteddeals = ourdeals.order_by('-total_score') 
    user = request.user  
    context = {'deals': sorteddeals, 'sl_products':sl_products, 'user':user,} 
    template='index.html' 
    return render_to_response(template, context, context_instance=RequestContext(request)) 

def usersl(request, id, id2): 
    userslt = User_Shortlist.objects.filter(id__iexact=id) 
    products = SDeals.objects.filter(id__iexact=id2) 
    product = products[0] 
    if userslt: 
     userslt[0].sdeals.add(product) 
    sl = userslt[0].sdeals.all() 
    return render_to_response('slnew.html', {'sl':sl}, context_instance=RequestContext(request)) 

views.py : 여기 내 코드는 :

url(r'^usersl/(?P<id>\d+)/(?P<id2>\d+)/$', views.usersl), 

slnew.html에 가고 싶지 않고, 다시로드하지 않고 index.html에 있고 'slist'를 클릭하면 단축키에 추가 할 함수를 실행하기 만하면됩니다.

+0

코드를 게시하면 도움을 드릴 수 있습니다. urls.py의 일부와 views.py 및 일부 html을 포함하십시오. –

+0

코드를 추가했습니다. –

+0

나는 이해하지 못한다. 'slnew.html'에 가지 않기를 원한다면 왜'usersl'의'render_to_response' ('return.html' 대신에'index.html' 대신에)을 지정하고 있습니까 (btw,'return' 문이 없습니다) . 'index.html' 전체를 다시로드하지 않으려면 AJAX를 사용해야합니다. –

답변

0

브라우저에서 탐색하지 않고 서버와 페이지를 변경하려면 JavaScript 솔루션을 살펴 봐야합니다. Ajax에 대해 읽어 보자. 본질적으로 서버에 업데이트를 보내고 HTML을 변경하기 위해 일부 JavaScript를 사용해야합니다.

JQuery는이를 수행하는 데 도움이되는 인기있는 라이브러리 중 하나입니다. 보다 정교한 예가 AngularJS입니다. 장고 측에서는 페이지에서 사용되는 작은 업데이트 작업을 처리하는 몇 가지 뷰를 작성합니다. Django REST 프레임 워크 나 Django Slumber 같은 라이브러리가 도움이 될 것입니다.

관련 문제