Найти - Пользователи
Полная версия: ЛЕНДИНГ НА DJANGO
Начало » Django » ЛЕНДИНГ НА DJANGO
1
Kr1o
Здравствуйте! Проблема следующая. Не могу догнать, как организовать лендинг на Django. На странице несколько динамических элементов, а именно “Новости”, “Акции” и форма обратной связи. Так вот вывод новостей и акций по адресу http://www.example.com у меня организованы в одном файле views, функция в котором запускается во время открытия сайта.

Запоролся на форме обратной связи, хочу, чтобы под формой появлялся текст с ошибкой, или текст с сообщением об успешной отправке. Но как это сделать, я не могу догнать… Прямо ступор какой-то. Если я вывожу ошибку методом render, то страница открывается без акций и новостей и страница полностью без форматирования, если вывожу методом HttpResponseRedirect то просто открывается корень сайта, однако текст ошибки уже не выводится, потому как переменную там не передать.

Вот вопрос, как организовать всё это на одностраничнике? Во всех гайдах и примерах используются ссылки на другие страницы сайта, у меня же задача весь функционал держать на одной странице.

В общем прошу какого-то небольшого разъяснения, потому что я не могу догнать как это все реализовать. Спасибо!

PS возможно сумбурно объяснил… если что спрашивайте, буду разъяснять
DOOMer
Отправляйте форму через ajax.

https://github.com/jonasgeiregat/django-ajax-forms
Kr1o
Т.е. я зря на себя грешил и стандартными методами это не решить?

Большое спасибо за наводку, буду изучать!
DOOMer
Т.е. я зря на себя грешил и стандартными методами это не решить?
Да, стандартные джанговские вьюхи для лендингов не очень подходит.

Я бы сделал основу странице в одной вьюхе (например на базе TemplateView), “новости” и “акции” подгружал бы через шаблонные теги включения (template inclusion tags).

А форму обратной связи - вынес в отдельную вьюху, основанную на FormView (с шаблоном НЕ наследуемым от base.html и содержашим ТОЛЬКО код формы), в которйо в методах form_valid \ form_invalid возвращал бы json с результатом успешно\неуспешной отпрвавки. Ну и изначально вызов формы можно в основнйо странице сделать через Jquewry.load(url вьюхи с формой)/
Kr1o
Я так и сделал, только форма у меня была в основном файле. Теперь буду переделывать.
Спасибо!
Alen
Kr1o
Запоролся на форме обратной связи, хочу, чтобы под формой появлялся текст с ошибкой, или текст с сообщением об успешной отправке. Но как это сделать, я не могу догнать… Прямо ступор какой-то. Если я вывожу ошибку методом render, то страница открывается без акций и новостей и страница полностью без форматирования, если вывожу методом HttpResponseRedirect то просто открывается корень сайта, однако текст ошибки уже не выводится, потому как переменную там не передать.

На GET отдавать страницу, на POST — JSON.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB