2016-09-04 8 views
7

ich habe eine Login-Ansicht geschrieben in Auth buid verwenden, django auth.login() über Fehlercode meinen Code mit FehlerTypeerror: login() nimmt ein Positions Argument aber 2 wurden gegeben

from rest_framework.response import Response 
from rest_framework import status 
from rest_framework.decorators import api_view 
from django.contrib.auth.models import User 
from django.contrib.auth import authenticate,logout,login 


@api_view(['POST']) 
def register(request): 
    user=User.objects.create_user(username=request.POST['username'],email=request.POST['email'],password=request.POST['password']) 
    return Response({'ok':'True'},status=status.HTTP_201_CREATED) 

@api_view(['POST']) 
def login(request): 
    user=authenticate(
     username=request.POST['username'], 
     password=request.POST['password'] 
    ) 
    if user is not None: 
     login(request,user) 
     return Response({'ok':'True'},status=status.HTTP_200_OK) 
    else: 
     return Response({'ok':'False'},status=status.HTTP_401_UNAUTHORIZED) 

Antwort

22

gibt o 500 Ihre Ansicht hat denselben Namen wie die Auth-Login-Funktion, also wird sie ausgeblendet. Ändern Sie den Ansichtsnamen oder importieren Sie die Funktion unter einem anderen Namen, zB from django.contrib.auth import login as auth_login.

+0

vielen Dank –

+0

Das ist ein schöner Hit! – abcdn

Verwandte Themen