Включить проверку наличия данных в базе данных для входа в систему
я начинающий
я пытаюсь сделать пост запрос, чтобы получить coer_id и пароль от клиента, а затем я пытаюсь проверить, существуют ли они в базе данных или нет .Я могу выполнить это.Это будет действительно полезно, если вы можете сказать мне, как я могу исправить это или сделать это .
models.py
from django.db import models
from django.core.validators import RegexValidator
class student_register(models.Model):
name=models.CharField(max_length=100)
father_name=models.CharField(max_length=100,null=True)
bhawan=models.CharField(max_length=100,null=True)
branch=models.CharField(max_length=40,null=True)
coer_id=models.CharField(max_length=12,unique=True,null=True)
phone_regex=RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+9999999999'. Up to 12 digits allowed.")
phone_number = models.CharField(validators=[phone_regex], max_length=17)
password=models.CharField(max_length=100)
serializer.py
from django.db.models import fields
from rest_framework import serializers
from .models import student_register
class register_serializers(serializers.ModelSerializer):
class Meta:
model = student_register
fields = '__all__'
class login(serializers.ModelSerializer):
class Meta:
model = student_register
fields = ['coer_id','password']
views.py
from rest_framework.response import Response
from rest_framework import viewsets
from .models import student_register
from .serializer import register_serializers
from .serializer import login
from rest_framework.decorators import api_view
from rest_framework import status
class register_view(viewsets.ModelViewSet):
queryset= student_register.objects.all()
serializer_class= register_serializers
@api_view(['POST'])
def check_login(request):
serializer=login(data=request.data)
if serializer.is_valid():
if student_register.objects.filter(coer_id=serializer['coer_id']).exists():
if student_register.objects.filter(password=serializer['password']).exists():
return Response(serializer.data)
else:
return Response(status=status.HTTP_404_NOT_FOUND)
вот ошибка, которую я получаю, когда отправляю json файл и размещаю его
Internal Server Error: /login/
Traceback (most recent call last):
File "D:\app_apis\env\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "D:\app_apis\env\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\app_apis\env\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "D:\app_apis\env\lib\site-packages\django\views\generic\base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "D:\app_apis\env\lib\site-packages\rest_framework\views.py", line 511, in dispatch
self.response = self.finalize_response(request, response, *args, **kwargs)
File "D:\app_apis\env\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
assert isinstance(response, HttpResponseBase), (
AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
Это должно работать:
def check_login(request):
serializer=login(data=request.data)
if serializer.is_valid():
if student_register.objects.filter(coer_id=serializer['coer_id']).exists():
if student_register.objects.filter(password=serializer['password']).exists():
return Response(serializer.data)
return Response(status=status.HTTP_404_NOT_FOUND) #much better like this