Можно отправить 2 набора запросов в ответ? - PullRequest
1 голос
/ 07 августа 2010

render_to_response Можно ли передать больше переменных, чем одну? Например, в моем приложении у меня есть модель участников, а затем я хотел бы отобразить информацию об участниках и информацию о посещаемости. Должен ли я предоставить аргументы в виде кортежа?
Заранее спасибо,
Декан

Ответы [ 2 ]

4 голосов
/ 07 августа 2010

Render_to_response принимает контекст, который используется для рендеринга.Насколько я знаю, нет ограничений на количество переменных, которые вы можете передать в контексте.Это включает в себя QuerySets.Например:

def my_view(request, *args, **kwargs):
    # ... etc ...
    q1 = Model1.objects.filter(**conditions)
    q2 = Model2.objects.filter(**conditions)
    context = dict(q1 = q1, q2 = q2)
    return render_to_response('my_template.html', context_instance = RequestContext(request, context))

В моем примере используется RequestContext, но и без него все будет в порядке.

3 голосов
/ 07 августа 2010

Хотя Manoj и прав, что вы можете передавать переменные, создавая собственный экземпляр контекста и передавая его в качестве аргумента ключевого слова в render_to_response, часто короче / проще использовать второй позиционный аргумент для render_to_response, который принимает словарь, добавляемый вконтекст за кулисами.

Посмотрите на документы для render_to_response .Их пример использования выглядит следующим образом (и позволяет передавать все, что может быть сохранено в dict для средства визуализации):

from django.shortcuts import render_to_response

def my_view(request):
    # View code here...
    return render_to_response('myapp/index.html', {"foo": "bar"},
        mimetype="application/xhtml+xml")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...