【问题标题】:Django rest framework serializer: how to update table with auto_increment pk?Django rest 框架序列化器:如何使用 auto_increment pk 更新表?
【发布时间】:2015-03-19 18:46:15
【问题描述】:

我有一个带有自动递增主键的表。 This answer 说我不应该把它放在字段列表中。但是如何更新记录呢?如果我将“id”字段传递给序列化程序,它会忽略它

【问题讨论】:

  • 您是否尝试将每个资源分配给唯一的 url(例如 'api/resources/{id}' )?因此,如果您向此 url 发出 PUT/PATCH 请求,DRF 将知道应该更新哪个记录我相信如果 ypu 使用 DRF 默认视图集或视图,这是默认行为

标签: python django django-rest-framework


【解决方案1】:

这取决于您如何发送您的身份证件。如果您的 url 中有它,您需要将其重命名为 pk 或在视图中重新定义 lookup_field

来自 DRF 源代码:

class GenericAPIView(views.APIView):
    ...

    # If you want to use object lookups other than pk, set this attribute.
    # For more complex lookup requirements override `get_object()`.
    lookup_field = 'pk'

如果您只在您的 json(或您正在使用的任何内容)中发送它,您可能需要覆盖视图上的 .get_object() 方法。

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 2016-03-31
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 2015-10-29
    相关资源
    最近更新 更多