Почему 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):

На прилагаемом экране показано, как возвращаются данные

enter image description here

Вы использовали Serializer, так что это не похоже на Meta, и поэтому вы определили сериализатор без полей. Вместо этого используйте ModelSerializer:

#                      ModelSerializer 🖟
class StatesSerializer(serializers.ModelSerializer):
    class Meta:
        model = States
        fields = ['en_name', 'ar_name']
Вернуться на верх