возвращая дополнительные переменные контекста в Django - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть страница, на которой пользователи могут искать других пользователей, и после поиска отображается список пользователей, который соответствует их критериям поиска.Рядом с каждым пользователем в результатах поиска у меня есть ссылка «Добавить в друзья». Каждая ссылка связана с функцией python в файле urls.py, который будет добавлять запрос в базу данных и т. Д. Однако я не используюAJAX для этого пока что я пытаюсь сделать все, что я могу работать с или без JavaScript. Но как только вызывается функция python, я хочу вернуть контекстную переменную обратно в шаблон, который вызвал функцию, и добавить переменнуючто я могу проверить это в шаблоне и удалить ссылку, по которой щелкнул пользователь, но оставить все остальные ссылки рядом со всеми остальными пользователями.Список пользователей ниже:

{% 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="/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 %}

Как я могу это сделать? Спасибо

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Я не до конца понял, какую переменную вы пропустили в вашем коде, но я добавил переменные в контекст у вас есть render_to_response , что очень удобно. Либо вручную добавьте то, что вам нужно, в контекстный словарь, либо используйте context_processors , если вам нужны переменные на всем сайте.

0 голосов
/ 28 апреля 2011

следующий код делает работу. Измените свой шаблон соответственно.

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
                            })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...