У меня есть некоторые представления, которые загружаются через вызовы Ajax. Но при рендеринге начальной страницы, которая вызывает вызовы Ajax, я, возможно, захочу, чтобы одно из моих Ajax-представлений загрузилось сразу.Как вызвать Ajax-представление из шаблона?
То есть, в моем шаблоне у меня есть что-то вроде:
{% if something_happen %}
<p>Some text.</p>
{% else %}
{# Render my ajax view here #}
{% endif %}
я мог либо заменить {# Render my ajax view here #}
с некоторыми Javascript, что сделает фактический запрос Ajax, или я мог бы сделать некоторые трюк на Django стороны, вызывной и рендеринг вид сразу, сохраняя одно круговое движение по сети.
Мне не нравится первый вариант по соображениям производительности, а второй кажется беспорядочным.
Самый чистый способ, который я думал о реализации этого трюка на стороне сервера, заключался в том, чтобы иметь возможность вызвать и встроить представление Ajax изнутри шаблона. Второй лучший способ - вернуть HttpResponse, возвращенный из представления Ajax, и каким-то образом внедрить его содержимое в шаблон. Другие варианты включают повторение себя, и я не должен повторять себя.
Каков наилучший способ встраивания Ajax с самого начала? Существует ли тег шаблона, который вызывает встроенные представления? Если нет, как я могу написать его? Это хорошая идея? Как действовать?
Просьба поделиться кодом для начальных и ajax-контроллеров. –
Что вы имеете в виду? Для части ajax код тот же. – lvella
Django имеет представления (функциональные и классные), на которые указывает URL-адрес. Если вы можете использовать код представления, который вы используете для исходного представления, а также код для представления ajax, я смогу обработать ответ. Ответ может отличаться в зависимости от того, что вы делаете в этих представлениях. –