Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
1

Django. не могу разобраться с redirect() и reverse()

01.08.2016, 21:02. Показов 8082. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Стоит задача от одного представления перейти к другому, попутно передав (или не передав) некие аргументы.
Если использовать данные функции (redirect() или reverse()) просто с URL или с названием представления, не передавая ничего - все хорошо, представление работает и перескакивает куда надо.
Если добавить аргументы - выдает ошибку: Reverse for 'home' with arguments '({'app_label': 'auth'},)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['$']
Подскажите в какую сторону бежать.

Дополню, т.к. спрашивал на другом форуме, и там пока молчат, но уточнения спросили:

В УРЛ есть:
Python
1
2
3
4
5
6
7
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.home, name = 'home'),
    url(r'^about/$', views.about, name = 'about'),
    url(r'^activities/$', views.activities, name = 'activities'),
    url(r'^au/', include('reg_aut_app.urls')),
]
сам редирект:
Python
1
2
3
if user.is_active:
    print("User is valid, active and authenticated")
    redirect('home', app_label='auth')
или:
Python
1
redirect(reverse('home', kwargs={'app_label': 'auth'}))
результат един в обоих случаях

в представлении, куда надо "перескочить" переменная прописана:
Python
1
def home(request, some_variable = None):
собственно вопрос, что я делаю не так?

Добавлено через 1 час 22 минуты
насколько я понимаю (если что поправьте), то
Python
1
redirect('home', app_label='auth')
пытается перейти по адресу /home/auth/, а мне надо перейти по адресу /home/ с доп значением app_label='auth'
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2016, 21:02
Ответы с готовыми решениями:

Python + Django не могу разобраться с логированием
Всем привет, решил обратиться за помощью)) посоветуйте пожалуйста литературу или что-нить ещё чтобы...

Не могу разобраться с Django Bootstrap Modal Forms
Ну не выскакивают окошки хоть убейся . Для теста сделал новый проект и все по инструкции . Но...

Ошибка в Django при redirect
Здравствуйте, в Django во views.py в функции прописываю: return redirect('/') (в начале прописал:...

Не могу разобраться с загрузкой данных из файлов,и чтоб в дальнейшем с ними мжно было работать как с массивом,не могу разобраться(
void __fastcall TPoisk::Button3Click(TObject *Sender) { Memo2->Lines->Clear();...

8
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
01.08.2016, 21:03 2
Цитата Сообщение от father_igni Посмотреть сообщение
if user.is_active:
* * print("User is valid, active and authenticated")
* * redirect('home', app_label='auth')
а return где?
0
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
01.08.2016, 21:11  [ТС] 3
упс, потерялось при копировании
сейчас поправлю
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
01.08.2016, 21:54 4
Как вариант, можно перед редиректом установить request.session['some_key'] = 'some_value' и на принимающей стороне читать это значение.
0
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
01.08.2016, 22:02  [ТС] 5
оказывается я не могу редактировать пост после коментов...
Python
1
2
         if user.is_active:
            return redirect('home',app_label = 'auth')
Добавлено через 4 минуты
а без сессии нельзя?
т.е. чтобы представление возвращало не ответ, а просто вызывало другое представление с неким набором параметров

ПС сессия - хорошо, и спасибо за подсказку, это пригодится в другой моей задаче
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
01.08.2016, 22:14 6
Цитата Сообщение от father_igni Посмотреть сообщение
а без сессии нельзя?
может и можно, сейчас не приходит ничего в голову.

так-то можно, конечно, но через урл, это не то, что Вы хотите, если я правильно понимаю
0
141 / 141 / 38
Регистрация: 20.02.2012
Сообщений: 597
02.08.2016, 08:25 7
Python
1
url(r'^(?P<some_variable>\.*)$', views.home, name = 'home')
Python
1
redirect('home', some_variable='auth')
так не работает?
0
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
07.08.2016, 12:27  [ТС] 8
не, не хочет таким макаром...
Reverse for 'home' with arguments '()' and keyword arguments '{'some_variable': 'auth'}' not found. 2 pattern(s) tried: ['(?P<some_variable>\\.*)$', '$']
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
07.08.2016, 17:11 9
Через url это делается вот так:

urls.py
Python
1
2
3
4
5
6
7
from django.conf.urls import url
from .views import *
 
urlpatterns = [
    url(r'^(?P<number>\d+)/$', home_view, name='home'),
    url(r'^result/(?P<result>\d+)/$', result_view, name='result')
]


views.py
Python
1
2
3
4
5
6
7
8
9
10
11
from django.core.urlresolvers import reverse
from django.shortcuts import render, redirect
 
 
# POI
def home_view(request, number):
    return redirect(reverse('cyber:result', kwargs={'result': number}))
 
 
def result_view(request, result):
    return render(request, 'home.html', {'result': result})


home.html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
 
result = {{ result }}
 
 
</body>
</html>
0
07.08.2016, 17:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2016, 17:11
Помогаю со студенческими работами здесь

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива...

Как можно реализовать методы shift, unshift, reverse, includes, indexOf, lastIndexOf, reverse?
Которые будут повторять оригинальные методы, внутри методов нужно использовать this? Можно...

Никак не могу запустить reverse приложение c++
Нашёл такое решение: www.partow.net/programming/tcpproxy/index.html Скомпиллировал всё хорошо....

Не могу разобраться разобраться с кодом меню
Добрый день. Я понимаю, что тут все, наверное, элементарно. Но я только начала изучение js и пока...

Как в web.config на iis прописать Redirect так же как в .htaccess типа: Redirect 301 /thumb http://st.site2.com?
Нужно прописать redirect на IIS в web.config который выполняет то же самое что и строка Redirect...

Приветствую, не могу разобраться с кодом программы и не могу сделать .obj файл
.model tiny; нужно будет получить исполняемый файл формата СОМ .code org 100h start: mov ax,...

Не могу понять задачу, никак не могу разобраться как код написать
Помогите!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru