Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 14, 2014 13:25:28

Kr1o
Зарегистрирован: 2014-09-14
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

ЛЕНДИНГ НА DJANGO

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

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

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

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

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

Офлайн

#2 Сен. 14, 2014 14:36:20

DOOMer
От: Russia.MO.Balashikha
Зарегистрирован: 2013-01-09
Сообщения: 37
Репутация: +  9  -
Профиль   Отправить e-mail  

ЛЕНДИНГ НА DJANGO

Отправляйте форму через ajax.

https://github.com/jonasgeiregat/django-ajax-forms

Офлайн

#3 Сен. 14, 2014 15:11:15

Kr1o
Зарегистрирован: 2014-09-14
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

ЛЕНДИНГ НА DJANGO

Т.е. я зря на себя грешил и стандартными методами это не решить?

Большое спасибо за наводку, буду изучать!

Офлайн

#4 Сен. 14, 2014 20:08:17

DOOMer
От: Russia.MO.Balashikha
Зарегистрирован: 2013-01-09
Сообщения: 37
Репутация: +  9  -
Профиль   Отправить e-mail  

ЛЕНДИНГ НА DJANGO

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

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

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

Офлайн

#5 Сен. 14, 2014 20:15:05

Kr1o
Зарегистрирован: 2014-09-14
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

ЛЕНДИНГ НА DJANGO

Я так и сделал, только форма у меня была в основном файле. Теперь буду переделывать.
Спасибо!

Офлайн

#6 Сен. 14, 2014 20:20:04

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

ЛЕНДИНГ НА DJANGO

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

На GET отдавать страницу, на POST — JSON.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version