Как передать GET-параметры на JS

289
28 февраля 2017, 17:22

Django 1.6

У меня сейчас так, но это не работает. Вызываю метод при нажатии на кнопку:

$scope.btn = function () {
    var From = $scope.From;
    window.open("{% url 'mysite' From="YPA!!!" %}", '_blank');
};

Далее в обработчике URL-ов url(r'^bla/$', View.as_view(), name='mysite'), происходит передача данных на обработчик:

class MyView(View):
http_method_names = ['get']
template_name = 'bla/mysite.html'
def get(self, request, *args, **kwargs):
    # Данные GET-запроса получать из "request.GET.*"
    print request.GET.From

Но в результате print ничего не выводит. Как правильно передать через GET имя переменной со значениемFrom="YPA!!!" в обработчик?

Попробовал так:

window.open("{% url 'mysite' %}" + "?From=YPA!!!", '_blank');

Но выводит ошибку:

'QueryDict' object has no attribute 'From'
Answer 1

вам необходимо либо подкорректировать route, либо указать get параметры явно.

1 способ: url(r'^bla/(?P<From>[\-_\D\d]+)$', View.as_view(), name='mysite')

2 способ: window.open("{% url 'mysite' %}" + "?From=YPA!!!", '_blank');

Еще неправильное обращение к полученным GET-переменным. Надо так:

def get(self, request, *args, **kwargs):
    print request.GET.get('From')
READ ALSO
Взаимодействие input

Взаимодействие input

Всем привет

318
Прелоадер при отправке формы

Прелоадер при отправке формы

Добрый день, есть универсальная форма обратной связи, работает вот с этим скриптом:

435
Сжатие и упорядочивание css

Сжатие и упорядочивание css

имеется файл bootstrapcss у которого объем эээ 4 мб, создатель переборщил явно и сайт просто мертв

278
На Android всплывает footer и aside страницы (html/css). Флекс не кроссбраузерный?

На Android всплывает footer и aside страницы (html/css). Флекс не кроссбраузерный?

Обнаружила такую проблему на своем сайтеИменно во встроенном браузере на Android

270