#python #django
#python #django
Вопрос:
Я пытаюсь получить URL-адрес, если он существует в URL-адресе, но продолжаю получать следующую ошибку:
django.utils.datastructures.Многозначный параметр Key Error: ‘sc’
Дело в том, что URL-адреса могут иногда выглядеть следующим образом:
/allot-graph/
и иногда:
/allot-graph/?sc='foo'
и в моей функции я делаю это:
class AllotmentbyMonth(APIView):
def get(self, request):
q = request.GET['sc']
if q:
print("q", q)
dataset = some query
else:
dataset = some query
Ответ №1:
Когда URL похож /allot-graph/?sc='foo'
, вы бы использовали q=request.GET.get('sc' , '')
.
sc — это нужный вам параметр, а » — значение по умолчанию, если sc не найден.
Другой способ продолжить — использовать URLconf, тогда ваши записи из регулярного выражения передаются функции в качестве аргументов (или именованных аргументов).
Например: (r'^ allot-graph/(?P< sc >w{0,50})/$', views.profile_page,)
Затем в вашем views.py вы бы так и сделали
def profile_page(request, sc):
# Rest of the method
Комментарии:
1.
request.GET.get('sc')
достаточно.2.
' sc '
не будет работать, но'sc'
(без пробела) (похоже на опечатку)