Почему Django API serializer.data возвращает пустые данные?
У меня странная проблема с моим Django API Я создал модель под названием States Мой сериализатор вывел данные хорошо, но serializer.data печатает данные как на прилагаемом экране
class States(models.Model):
en_name = models.CharField(max_length=100)
ar_name = models.CharField(max_length=100)
class Meta:
verbose_name_plural = "States"
def __str__(self):
return self.en_name
и я создал файл Serializer
class StatesSerializer(serializers.Serializer):
class Meta:
model = States
fields = ['en_name', 'ar_name']
тогда я сделал свой views.py
@api_view(['GET'])
@permission_classes([IsAuthenticated])
def getStates(request):
states = States.objects.all() # Fetch all states from the database
serializer = StatesSerializer(states, many=True) # Serialize the data
print(serializer) # Add this line to check the serialized data
return Response(serializer.data, status=status.HTTP_200_OK)
мой печатный сериализатор
StatesSerializer(<QuerySet [<States: Alexandria>, <States: Aswan>, <States: Asyut>, <States: Beheira>, <States: Beni Suef>, <States: Cairo>, <States: Dakahlia>, <States: Damietta>, <States: Faiyum>, <States: Gharbia>, <States: Giza>, <States: Ismailia>, <States: Kafr El Sheikh>, <States: Luxor>, <States: Matruh>, <States: Minya>, <States: Monufia>, <States: New Valley>, <States: North Sinai>, <States: Port Said>, '...(remaining elements truncated)...']>, many=True):
На прилагаемом экране показано, как возвращаются данные
Вы использовали , так что это не похоже на Serializer
Meta
, и поэтому вы определили сериализатор без полей. Вместо этого используйте ModelSerializer
:
# ModelSerializer 🖟
class StatesSerializer(serializers.ModelSerializer):
class Meta:
model = States
fields = ['en_name', 'ar_name']