Найти - Пользователи
Полная версия: Передача данных из template во view
Начало » Django » Передача данных из template во view
1
Anatoly.K
И снова здравствуйте,

Полагаю, это очень простой вопрос, но я никак не могу найти в 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")
Как же решается такая проблема?
magnet85
В 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 %}
FishHook
Очень похоже на то, что вам нужен 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);


}
});
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