簡體   English   中英

CharField 類型的 Object 不是 JSON 可序列化的

[英]Object of type CharField is not JSON serializable

我正在通過嘗試構建想到的東西來學習 Django。 現在我正在嘗試構建 Django rest API 從 postgres 數據表中返回項目或所有項目。

模型.py

class AdModel(models.Model):
    id = models.IntegerField
    name = models.CharField(max_length=50),
    address = models.CharField(max_length=50),
    web = models.CharField(max_length=50),

    class Meta:
        db_table = 'mock_location_data'

序列化程序.py

class AdSerializer(serializers.ModelSerializer):
class Meta:
    model = AdModel
    fields = ['id', 'name', 'address', 'web']

視圖.py

class AdAPIView(APIView):

    def get(self, request):
        queryset = AdModel.objects.all()
        serializer_class = AdSerializer(queryset, many=True)
        return Response(serializer_class.data)

在 GET 請求中,我收到內部服務器錯誤 500,其中“CharField 類型的對象不是 JSON 可序列化的”

在 views.py 中,如果將 fields = ['id', 'name', 'address', 'web'] 替換為

fields = '__all__'

我正在獲取所有 id 字段

[  {    "id": 1  },  {    "id": 2  },  {    "id": 3  },.....]

但沒有其他數據

我正在使用 Django 3.1.5 和 DRF 3.12.2

您在 AdModel 類的 id 字段中遺漏了一對括號,並且在每個字段之后也不需要“,”:

class AdModel(models.Model):
    id = models.IntegerField()
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=50)
    web = models.CharField(max_length=50)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM