Django, как вызвать это определение во всех файлах шаблона? - PullRequest
1 голос
/ 22 февраля 2011

Эй, мне нужна небольшая помощь с этой функцией django.Я не хочу вставлять его в base.html, но не могу .. Как?

def my_friends(request):
friendships = request.user.profile.friendships.exclude(pending=True).order_by('-friend__user__last_activity_date')
friendshipsQS = friendships
results = tuplify(friendships.all(), n=3)
return render(request, 'base.html', locals())

1 Ответ

1 голос
/ 22 февраля 2011

Accept Answers

Нельзя просто настроить представление, отображающее base.html, и надеяться, что все, что расширяет его, будет также использовать это представление.

Вам нужно использовать что-то вроде контекстного процессора, чтобы вводить значения в каждый контекст.http://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors

def FriendsContextProcessor(request):
    """
    Include Friendships in all RequestContext
    """
    friendships = request.user.profile.friendships.exclude(pending=True).order_by('-friend__user__last_activity_date')
    friendshipsQS = friendships
    results = tuplify(friendships.all(), n=3)
    return { 'results': results, 'friendshipsQS': friendshipsQS }

добавьте python.dot.path.to.my.FriendsContextProcessor к вашему параметру TEMPLATE_CONTEXT_PROCESSORS, и возвращенный выше словарь будет доступен во всех RequestContext, что, очевидно, render(...) для вас!Значит ли это, что вы используете транк?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...