Здравствуйте.
Скажите пожалуйста, как передать аргумент из ссылки URL в функцию views?
То есть, у меня на странице имеется следующее:{% url 'posts:response_search' 123 %}
Как передать число 123 в функцию views, если формат сгенерированного url должен быть статическим, то есть без добавления аргумента в адресную строку. Например, вот так:
url(r'^response_search/$', views.response_search, name='response_search'),
Но все же аргумент должен как-либо передоваться. Заранее спасибо :)
Можно использовать post запросы. Для этого можно использовать либо формы, либо ajax запросы. В случае с формой html код будет таким:
<form action="{% url 'posts:response_search' %}" method="post">
{% csrf_token %}
<input type="hidden" name="parameter" value="123">
</form>
Если использовать ссылку на других элементах, стоит использовать ajax:
$('link').add('click', function(e) {
$.ajax({
url: "{% url 'posts:response_search' %}",
data: {
'csrfmiddlewaretoken': $('[name=csrfmiddlewaretoken]').val(),
'parameter': '123'
},
dataType: 'json',
method: "POST",
success: function(response) {
// Здесь можно выполнить код после получения успешного ответа
console.log('Response status is: ', response.status);
}
});
});
<!-- Поскольку будет осуществляться передача данных необходимо использовать токен -->
{% csrf_token %}
<a id="link">Click</a>
В view response_search получить переданный параметр можно будет получить:
import json
from django.http import HttpResponse
def response_search(request):
if request.method == 'POST':
parameter = request.POST.get('parameter')
return HttpResponse(json.dumps({'status': 'ok'}))
else:
# Обработать запрос get
Передавай через GET {% url 'posts:response_search'%}?q=123
. Это сделает ссылку /response_search/?q=123
.
В коде принимаешь это число через q = request.GET.get('q')
.
Для поиска обычно делается так.
Если используешь форму ввода, то:
<form action={% url 'posts:response_search'%}>
<input name=q>
<submit>
</form>
Метод GET не рекомендуется для запросов, которые могут изменить состояние твоего приложения. Для редактирования лучше всеж использовать POST.
Как-то раз, давным-давно я захотел минифицировать свой JS-код, но случайно зашёл на сайт, который помимо минификации ещё и обфусцирует егоЯ...
Добрый день, хочу поинтересоваться, кто-то делал отправку писем через гугл таблицы? Те, проворачивал ли, кто-то вот такую схему "сайт -> гугл...
Нужно проигрывать видео зашифрованное симметричным ключомПри этом скопировать видео нельзя и ключ тоже