【问题标题】:Saving with PrimaryKeyRelatedField django-rest使用 PrimaryKeyRelatedField 保存 django-rest
【发布时间】:2016-12-01 03:06:19
【问题描述】:

我正在构建一个允许发布到 django 后端的端点。 Deal Model 拥有 ManyToMany Relation 顶级账簿管理人,我的序列化程序默认具有 PrimaryKeyRelatedField 如下:

模型.py

class Deal(models.Model):
    book_runner = models.ManyToManyField(BookRunner, blank=True, null=True, related_name="deal_book_runner")

序列化器.py

class DealSerializer(serializers.ModelSerializer):
    book_runner = PrimaryKeyRelatedField(allow_null=True, many=True, queryset=BookRunner.objects.all(), required=False)
    equity = Equity.objects.create(**equity_data)

def create(self, validated_data):
    deal = Deal.objects.create(**validated_data)
    return deal

Views.py

class DealAdminViewSet(viewsets.ModelViewSet):
    queryset = Deal.objects.all()
    serializer_class = CreateDealSerializer

    def create(self, request, format=None):
        book_runner = request.data.get('book_runner', None) #array

在验证前打印数据(validated_data)程序中断的地方:

{'book_runner': u'2'}

现在,当我发布与主键 = 2 的书商的交易时,我收到一个错误:

File "/usr/lib/python2.7/json/encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <property object at 0x7f1559578158> is not JSON serializable

将来我想同时使用数组和主键的数量。感谢您的帮助!

【问题讨论】:

    标签: django serialization django-rest-framework


    【解决方案1】:

    这是关于您发送到休息框架的 JSON 的错误。它没有成功反序列化它。 检查 JSON 格式是否有效。

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2013-07-05
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 2016-08-13
      • 2021-11-23
      • 2016-04-25
      • 1970-01-01
      相关资源
      最近更新 更多