Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

993
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!