2011-04-28 5 views
0

사용자가 다른 사용자를 검색 할 수있는 페이지를 가지고 있고 검색을 한 후에는 검색 기준과 일치하는 사용자 목록이 표시됩니다. 검색 결과의 각 사용자 옆에 "친구로 추가"링크가 있습니다. 각 링크는 urls.py 파일의 python 함수에 연결되어 데이터베이스에 요청을 추가합니다. 그러나 사용하지는 않습니다. 이것에 대한 AJAX는 아직 JavaScript를 사용하거나 사용하지 않는 모든 것을 만들기 위해 노력하고 있습니다. 그러나 파이썬 함수가 호출되면 함수를 호출하고 변수를 추가하는 템플릿으로 컨텍스트 변수를 반환하고 싶습니다. .Django에서 추가 컨텍스트 변수를 반환합니다.

def request_friend(request,to_friend): 
    try: 
     from_friend = request.user 
     to_friend = CustomUser.objects.get(pk=to_friend) 
     f = Friendship(from_friend=from_friend,to_friend=to_friend) 
     f.save() 
     f1 = Friendship(from_friend=to_friend,to_friend=from_friend) 
     f1.save() 
     try: 
      text = "<a href='/%s/'>%s</a> has requested you as a friend" % (from_friend.username,from_friend.username) 
      n = Notification(from_user=from_friend,to_user=to_friend,notification_text=text) 
      n.save() 
      response = 'Friend Requested' 
     except: 
      response = 'Couldnt save notification' 
    except: 
     response = 'Did not save to database' 
    return TemplateResponse(request,'users/friend_search.html',{'friend_added':response}) 

와의 목록을 보여줍니다 템플릿 코드 : 다른 모든 사용자에게 파이썬의 기능은 다음과 같습니다 옆에 내가 템플릿에서 확인하고 사용자가 클릭하는 링크를 제거하지만 다른 모든 링크를 떠날 수 있음 사용자는 다음과 같습니다.

{% for u in users %} 
<div id="results"> 
    <img src="{{ u.profile_pic }}" class="xsmall-pic" /> <a href="/{{ u.username }}/">{{ u.username }}</a><br /> 
    <span class="small-date">{{ u.get_full_name }}</span> 
    <span class="floatR" id="user_{{ u.id }}_link">{% if not friend_added %}<a href="https://stackoverflow.com/users/requests/friends/{{ u.id }}/" id="{{ u.id }}" class="user_link" onclick="return request_friend({{ u.id }});">Add as friend</a>{% else %}{{ friend_added }}{% endif %}</span> 

</div>{% endfor %} 

어떻게해야합니까? 감사합니다

답변

1

코드에서 누락 된 변수를 완전히 이해하지 못했지만 컨텍스트에 변수를 추가하려면 매우 편리합니다 render_to_response이 있습니다. 문맥 사전에 필요한 것을 수동으로 추가하거나 전체 사이트에 변수가 필요한 경우 context_processors을 사용하십시오.

0

다음 코드는 작업을 수행합니다. 그에 따라 템플릿을 조정하십시오.

def request_friend(request,to_friend): 
    result = False 
    try: 
     from_friend = request.user 
     to_friend = CustomUser.objects.get(pk=to_friend) 
     f = Friendship(from_friend=from_friend,to_friend=to_friend) 
     f.save() 
     f1 = Friendship(from_friend=to_friend,to_friend=from_friend) 
     f1.save() 
     try: 
      text = "<a href='/%s/'>%s</a> has requested you as a friend" % (from_friend.username,from_friend.username) 
      n = Notification(from_user=from_friend,to_user=to_friend,notification_text=text) 
      n.save() 
      response = 'Friend Requested' 
      result = True 
     except: 
      response = 'Couldnt save notification' 
    except: 
     response = 'Did not save to database' 
    return TemplateResponse(request, 
          'users/friend_search.html', 
          { 
          'friend_added': result, 
          'message': response 
          }) 
관련 문제