Verifique se existe um parâmetro na URL do Django

0
Voto

Estou tentando obter um URL se ele existir no URL, mas continuo recebendo o seguinte erro:

Estou tentando obter um URL se ele existir no URL, mas continuo recebendo o seguinte erro:

django.utils.datastructures.MultiValueDictKeyError: 'sc'

django.utils.datastructures.MultiValueDictKeyError: 'sc'

django.utils.datastructures.MultiValueDictKeyError: 'sc'

O caso é que os urls podem ser às vezes como o seguinte:

O caso é que os urls às vezes podem ser assim:
/allot-graph/
/allot-graph/ /allot-graph /

e às vezes:

e às vezes:
/allot-graph/?sc='foo'
/allot-graph/?sc='foo' /allot-graph /? Sc='foo'

e na minha função estou fazendo isso:

e na minha função, estou fazendo isso:
class AllotmentbyMonth(APIView):

    def get(self, request):

        q=request.GET['sc']

        if q:

            print("q", q)

            dataset=some query
        else:

            dataset=some query
class AllotmentbyMonth(APIView): def get(self, request): q=request.GET['sc'] if q: print("q", q) dataset=some query else: dataset=some query classe AllotmentbyMonth (APIView): def get (self, request): q=solicitação.GET['sc'] se q: imprimir ("q", q) dataset=alguma consulta outro: dataset=alguma consulta

Fonte

python django

1 Responda
0
Voto

Quando uma URL é como /allot-graph/?sc='foo', você deve usar q=request.GET.get('sc' , '').

sc é o parâmetro que você deseja e '' é o valor padrão se sc não for encontrado.

Outra maneira de proceder é usar o URLconf, então suas capturas do regex são passadas para a função como argumentos (ou argumentos nomeados).

Tal como: (r'^ allot-graph/(?P< sc >\w{0,50})/$', views.profile_page,)

Então em views.py você teria

def profile_page(request, sc):
    # Rest of the method
Fonte

1 -Arakkal Abu

-Arakkal Abu

Você pode interessar

© 2021   OlaMundo.Org