Ошибка импорта сериализатора в django rest-framework
#serializers.py
from rest_framework import serializers
class CommunitysStaffSerializer(serializers.ModelSerializer):
role = serializers.CharField(max_length=100,default='management')
community = serializers.PrimaryKeyRelatedField(read_only=True)
user = serializers.PrimaryKeyRelatedField(read_only=True)
#views.py
from rest_framework.response import Response
from admindashboard.serializers import CommunitysStaffSerializer
@api_view(['POST'])
def Communitystaff(request,pk=None):
if request.method == 'POST':
serializer = CommunitysStaffSerializer(data = request.data)
if serializer.is_valid():
Staff = CommunityStaff.objects.get(id = request.data['id'])
Staff.community=serializer.validated_data['community']
Staff.role=serializer.validated_data['role']
Staff.save()
return Response({'detail': 'entry successfully'})
else:
return Response({'error': 'unable to entry staff'}, status=status.HTTP_400_BAD_REQUEST)
else:
return Response (serializer.data)
#error
File "C:\Users\Pinakee.Somyadarshee\Desktop\mykommunity\admindashboard\urls.py", line 2, in from admindashboard.views import Login_post,City_post,City_list,City_update,City_remove,Community_update,Community_list,Community_post,Community_detail,Admindash_list,Admindash_update,Admindash_remove,Admindash_post,Admindash_detail,Communitystaff Файл "C:\Users\Pinakee.Somyadarshee\Desktop\mykommunity\admindashboard\views.py", строка 11, in from admindashboard.serializers import CommunitysStaffSerializer ImportError: cannot import name 'CommunitysStaffSerializer' from 'admindashboard.serializers' (C:\Users\Pinakee.Somyadarshee\Desktop\mykommunity\admindashboard\serializers.py)
Если serializers.py и views.py находятся в одной папке, используйте:
from .serializers import import CommunitysStaffSerializer
В любом случае, если вы используете serializer.ModelSerailizer, вы должны определить модель или, в противном случае, вы можете использовать другой сериализатор: https://www.django-rest-framework.org/api-guide/serializers/#modelserializer