передать переменную из одного представления в другое (я не думаю, что мне нужны request.sessions, поскольку мне не нужен глобальный доступ к этому значению) - PullRequest
0 голосов
/ 28 февраля 2020

Я создаю сайт типа доски объявлений. После поиска почтового индекса на странице индекса пользователь попадает на страницу search_results. На этой странице находится список вакансий в этой области и форма для подписки пользователей по электронной почте, чтобы получать уведомления о новых публикациях. Вот представление:

def search_results(request):
    query =request.GET.get('query') # zip code
    jobs = []
    # logic for querying Job objects and filling 'jobs' list omitted

    form = JobSeekerEmailForm() # pass email subscription form to template

    return render(request, 'job/search_results.html', {'query':query, 'jobs': jobs, 'form':form})

В шаблоне search_results. html, если пользователь отправляет JobSeekerEmail(), они перенаправляются в представление email_subscription:

   <form action="{% url 'email_subscription' %}" method="POST">
       <input  type = 'text' placeholder="Email"/>
       <button type="submit" name="button">Submit</button>
     </div>
     {% csrf_token %}
   </form>

В этом представлении я просто сохраняю электронную почту и пытаюсь перенаправить обратно на search_results, чтобы пользователь мог продолжить просмотр заданий в почтовом индексе, который они искали:

def job_seeker_email(request):
    if request.method == 'POST':
        form = JobSeekerEmailForm(request.POST)
        if form.is_valid():
            form.save()
    return redirect('search_results') # search results will throw an error because there is no longer a 'query' value

, но это не удастся. Есть ли способ передать исходное значение query в представление job_seeker_email, чтобы оно могло передать его обратно в представление search_results? Я видел requests.sessions ответов, но я не думаю, что это то, что мне нужно здесь?

...