Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2012 16:33:50

Anatoly.K
От:
Зарегистрирован: 2012-01-09
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача данных из template во view

И снова здравствуйте,

Полагаю, это очень простой вопрос, но я никак не могу найти в Django-book или доках нормального освещения следующего вопроса: как можно передать данные из template-а в соответствующую ему view? Раньше мне для этого всегда хватало формы: вывел данные, поправил, нажал кнопку, данные ушли в соответствующий метод на сервере. Теперь же я хочу, чтобы при выполнение каких-либо действий на страничке на сервер уходил request с указанными данными и страничка перерисовывалась соответствующим образом.
Простой пример: на страницу выводится блок данных, пользователь нажимает один элемент (ссылку, или кнопку), данные пересортируются на сервере по-новому и возвращаются на страничку. Насколько я понимаю, данные нужно запихивать в request, но как? Я не нашел простых примеров в доках (вероятно, я не то искал…) Гугл выдал какой-то невнятый пример с использование Javascript-а, но неужто нет более простых и наглядных методов?

Буду очень признателен за пример, или указание того, куда мне нужно смотреть и что гуглить.

То есть, в данный момент мне хочется написать что-то типа

<a href="{% url path.to.view foo="MyFoo"%}">click me</a>
, в шаблоне

а в path.to.view (который непосредственно связан с этим шаблоном) хочется написать что-то типа

foo = request.GET.get("foo")
Как же решается такая проблема?



Офлайн

#2 Янв. 12, 2012 08:16:28

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

Передача данных из template во view

В urls.py

urlpatterns = patterns('',
(r'^articles/(?P<year>\d{4})/$', 'news.views.year_archive', name='news_year'),
)
Представление:
def hours_ahead(year):
тут делайте с year всё что нужно
return HttpResponse(year)
В шаблоне:
{% url news_year 2012 %}



Офлайн

#3 Янв. 12, 2012 08:50:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Передача данных из template во view

Очень похоже на то, что вам нужен ajax.

 
from django.utils import simplejson
from django.http import HttpResponse
def foo(request):
data={}

return HttpResponse(simplejson.dumps(data), mimetype="application/json")
$('.save').click( function(){ $.getJSON("/foo", $(this).parent().serialize(), function(data){
alert(data);


}
});



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version