В чем причина того, что данные не сохраняются в базе данных?
Моя цель - сохранить данные из html form
. Я пробовал разные способы, ниже приведен один из них. Но данные не сохраняются в базе данных😥. В чем проблема? Подходит ли этот способ?
views.py:
@api_view(['POST'])
def employeeListView(request):
if request.method == 'POST':
jsonData = JSONParser().parse(request)
serializer = EmployeeSerializer(data=jsonData)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, safe=False)
else:
return JsonResponse(serializer.errors, safe=False)
def InsertAndInfo(request):
if request.method == 'POST':
name = request.POST.get('name')
data = {
'name':name
}
headers = {'Content-Type': 'application/json'}
read = requests.post('http://127.0.0.1:8000/api/employees/',json=data,headers=headers)
return render(request, 'InsertAndInfo.html')
models.py:
class Employee(models.Model):
name = models.CharField(max_length=30)
email = models.EmailField(max_length=30)
phone = models.IntegerField()
serializer.py:
class EmployeeSerializer(serializers.ModelSerializer):
class Meta:
model = Employee
fields = "__all__"
urls.py:
path('', views.InsertAndInfo, name="InsertAndInfo"),
path('employees/', views.employeeListView, name="employeeListView")
Попробуйте это...
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
@api_view(['POST'])
def employeeListView(request):
if request.method == 'POST':
serializer = EmployeeSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Я изменил phone = models.IntegerField(null=True)
на phone = models.CharField(max_length=30, null=True)
, после чего все заработало