Django: добавление необязательных параметров к запросу в представлении - PullRequest
0 голосов
/ 09 июня 2018

В моем приложении Django views.py я передаю запрос GET для определения функции.Как проверить наличие необязательного параметра в этом запросе (например, &optional='All') и, если этот необязательный параметр отсутствует, добавьте его.Это все до того, как запрос будет отправлен в шаблон для обработки.

Это то, что у меня есть:

def my_function(request):

    #get all the optional parameters 
    optional_params_list = request.GET.keys()

    #see if filter_myfilter is NOT an optional param
    if 'filter_myfilter' not in optional_params_list:
      #add filter_myfilter as a parameter and set it equal to All
      request.filter_myfilter = 'All'

    return render(request, 'quasar.html')

1 Ответ

0 голосов
/ 09 июня 2018

По вашему мнению, у вас есть доступ к request.GET, с его помощью вы можете установить новое значение для конкретного URL из этого представления.Как вы упомянули, возможно добавление значения optional к параметру GET.Таким образом, мы можем продолжить, перенаправив пользователя к правильному представлению в случае, если значение optional отсутствует или не равно All.


<b>from django.http import HttpResponseRedirect</b>
<b>from django.core.urlresolvers import reverse</b>

def my_function(request):

    <b>param = request.GET.get('param','All')</b>
    if param != 'All':
        <b>return HttpResponseRedirect(reverse('url_name') + "?optional=All")</b>
        # or
        # return HttpResponseRedirect(request.path + "?optional=All")
    return render(request, 'quasar.html')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...