@FDF जवाब बहुत अच्छा है। इसे करने का एक और तरीका यहां है।
from rest_framework import parsers, renderers
from rest_framework.authtoken.models import Token
from rest_framework.response import Response
from rest_framework.views import APIView
from django.contrib.auth.signals import user_logged_in
from emailauth.serializers import AuthTokenSerializer, UserSerializer
class ObtainAuthToken(APIView):
throttle_classes =()
permission_classes =()
parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
renderer_classes = (renderers.JSONRenderer,)
serializer_class = AuthTokenSerializer
def post(self, request, *args, **kwargs):
serializer = self.serializer_class(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
token, created = Token.objects.get_or_create(user=user)
user_logged_in.send(sender=user.__class__, request=request, user=user)
return Response({'token': token.key, 'user': UserSerializer(user).data})
obtain_auth_token = ObtainAuthToken.as_view()
आप कर सकते हैं:
user_logged_in.send(sender=user.__class__, request=request, user=user)
यहाँ (USERNAME_FIELD रूप में ईमेल का उपयोग करता है एक कस्टम उपयोगकर्ता मॉडल के आधार पर) एक काम दृश्य है:
हम user_logged_in
संकेत है कि update_last_login
फोन करेगा भेज यहां पूर्ण स्रोत कोड खोजें: Api View with last_login updated
आशा है कि यह एच elps।
मुझे आराम के साथ एक ही समस्या है। टोकन – timop
से निपटने के दौरान अंतिम लॉगिन छोड़ दिया जाता है अंत में मैंने इसे अपने आप से उस क्षेत्र को अद्यतन करने का हल किया। मैंने सोर्स कोड की जांच की और लॉग इन करते समय इसे अपडेट नहीं किया जा रहा था। –
हाय, @ एफडीएफडीवी क्या आप इस मुद्दे के लिए अपना समाधान साझा कर सकते हैं? – neptune