Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

990
Vistas
TypeError: get () toma 1 argumento posicional pero se dieron 2

Estoy creando una aplicación web de inventario y me encuentro con este error. Estoy tratando de obtener el nombre de usuario del token para mostrar un mensaje de saludo personalizado y mostrar que el usuario inició sesión como alguien.

Aquí está mi Views.py que obtiene Token de localStorage como usuario conectado:

 class UserDetails(APIView): def post(self, request): serializer = UserAccountTokenSendSerializer(data=request.data) global token if serializer.is_valid(): token = serializer.validated_data['token'] return Response(serializer.data) def get(self): user_id = Token.objects.get(key=token).user_id details = User.objects.get(id=user_id) serializer = UserDetails(details, many=False) return Response(serializer.data)

 class UserDetails(serializers.ModelSerializer): class Meta: model = User fields = ( 'username', )

Aquí está mi Urls.py:

 urlpatterns = [ path('get-user-token/', views.UserDetails.as_view()), path('get-user-details/', views.UserDetails.as_view()), ]

Y este es el error que me sale:

 File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/rest_framework/views.py", line 506, in dispatch response = handler(request, *args, **kwargs) TypeError: get() takes 1 positional argument but 2 were given [15/Jun/2022 19:34:59] "GET /api/v1/get-user-details/ HTTP/1.1" 500 82239

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El .get(…) [Django-doc] también toma un parámetro de request , incluso si no lo usa, así que:

 class UserDetails(APIView): # … def get(self , request ): # … pass

Recomiendo encarecidamente no convertir token en una variable global. El mismo servidor web puede ser utilizado por otro usuario que por lo tanto no se haya autenticado (correctamente). Eche un vistazo a lasección Autenticación de la documentación del marco Django REST para obtener más información sobre cómo autenticar y verificar las credenciales.


Nota : en Django, las vistas basadas en clases (CBV) a menudo tienen un sufijo de …View para evitar conflictos con los nombres de los modelos. Por lo tanto, podría considerar cambiar el nombre de la clase de vista a UserDetailsView , en lugar de UserDetails .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda