Использование Django с в основном статическими страницами - PullRequest
0 голосов
/ 05 марта 2019

Я новичок в веб-разработке и работаю над сайтом для своего яхт-клуба.Поскольку нам нужна была возможность иметь учетные записи и входить в систему пользователей, которые являются членами, иметь календари, опросы и т. Д. ... мы решили использовать Django, потому что это рекламируется, чтобы быть относительно простым в использовании, и я знаком с Python.

В нашем index.html мы написали статический html, чтобы иметь систему меню, которая отображает контент в зависимости от того, был ли пользователь аутентифицирован или нет в Django.Проблема, с которой я сталкиваюсь, заключается в том, что меню работает должным образом, если мы не уйдем от него.Меню больше не отображается, и оно ДОЛЖНО отображаться на всех страницах, на которые пользователь переходит.

Я поместил это на одну из страниц, на которые ссылается index.html, когда я выполнял поиск в Google иБыло предложено, что это должно работать, но это не так.

<script src="http://code.jquery.com/jquery.min.js"></script>
<script>
$.get("/", function(data){
    $("#msa_TopNavbar").replaceWith(data);
});
</script>

Я в полной растерянности, как сделать эту функцию.Я подумал о создании каждой страницы как приложения Django в моем проекте, даже если это просто статическая страница.Я также подумал, что, возможно, index.html должен быть просто шаблоном, и все статические страницы наследуют его, чтобы включить в него и меню.

Я понимаю, что это может быть огромным вопросом для одного вопроса stackoverflow, ноЯ не знаю, связана ли эта проблема с Django или это проблема HTML / javascript.

И да, я следовал учебным курсам по Django, но они не поддаются решению этой проблемы.

1 Ответ

0 голосов
/ 05 марта 2019

Вы делаете много дополнительной работы.Вместо извлечения html-данных с помощью вызова jQuery вы можете просто использовать систему шаблонов Django.

На html-странице:

{% include 'header.html' %}

... rest of the page here

{% include 'footer.html' %}

Затем в header.html вы помещаете html-данные navbar,Обычно вы создаете файл для header.html и footer.html, и в эти файлы вы помещаете все ссылки на скрипты / таблицы стилей, которые вам нужны для каждой страницы, а затем вместо того, чтобы вводить одни и те же HTML-данные в верхней части каждой страницы, вы просто{% include header.html' %}

Возможно, вам потребуется прочитать шаблоны Django .С ними иногда бывает немного трудно работать.

Надеюсь, это поможет.

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