Отправка данных между представлениями в Django - PullRequest
1 голос
/ 07 февраля 2020

Я хочу отправить данные между двумя представлениями в Django. Основной лог c заключается в том, что в главном маге у меня есть простая форма, в которую я ввожу URL. После отправки я удаляю данные с этого URL и перенаправляю на конечную точку / боке. С этой конечной точки я хочу go до конечной точки / дней (с панели навигации) и работать с тем же данным URL. Я пытался использовать сессию, но это не сработало. Мой код выглядит так:

views.py

def home(request):
    if request.method == 'POST':
        url = request.POST['url']
        request.session['url'] = url
        return redirect('bokeh',url=url)
    return render(request,'home.html')

def bokeh(request,url):
    cl = CalculationLogic()
    return cl.get_data_from_url(request,url)

def days(request,url):
    cl = CalculationLogic()
    url = request.session.get('url')
    return cl.show_days_of_the_week(request,url)

Итак, после отправки данных из дома. html в боке, все в порядке, и я делаю все CalculationLogi c. Когда я хочу go дней, я получаю ошибку NoReverse Match:

NoReverseMatch at /days/https://github.com/USER/PROJECT/commits/master
Reverse for 'days' with keyword arguments '{'url': ''}' not found. 1 pattern(s) tried: ['days/(?P<url>.+)']

, и мои URL выглядят так:

urlpatterns = [
....
url(r'^days/(?P<url>.+)',views.days,name='days'),
....
]

в моей базе. html файл, который я имею:

<body>
<nav>
<a class="nav-link" href="{% url 'days' url=url %}">Days</a>
</nav>
</body>

Кто-нибудь знает, почему это умывание не работает?

1 Ответ

0 голосов
/ 07 февраля 2020

Разве вы не забыли присвоить значение на вашем домашнем виде: request.session['url'] = url?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...