Django: AssertionError: `HyperlinkedIdentityField` requires the request in the serializer context. Add `context={'request': request}` when instantiating the serializer.

错误翻译

AssertionError: ' HyperlinkedIdentityField '需要在序列化器上下文中请求。在实例化序列化器时添加' context={'request': request} '。

错误代码:

book_ser = BookSerializer(data=request.data)

修改后:

book_ser = BookSerializer(data=request.data, context={'request': request})

全部代码

复制代码
# views.py
@api_view(['GET', 'POST'])
def books(request):
    if request.method == 'GET':
        return Response(data={"msg": "get ok"})
    elif request.method == "POST":
        book_ser = BookSerializer(data=request.data, context={'request': request})

        if book_ser.is_valid():
            book_ser.save()

            return Response(book_ser.data)
        return Response(data={'msg': 'error'}, status=status.HTTP_400_BAD_REQUEST)
复制代码

报了一个新的错误

django.core.exceptions.ImproperlyConfigured: Could not resolve URL for hyperlinked relationship using view name "book-detail". You may have failed to include the related model in your API, or incorrectly configured the `lookup_field` attribute on this field.

上述问题,我引入HyperlinkedModelSerializer方法,重启服务器已解决

复制代码
# models.py
from rest_framework import serializers
from RESTSerializer.models import Book

class
BookSerializer(serializers.HyperlinkedModelSerializer): """ 对数据库进行序列化 """ class Meta: model = Book fields = ('b_name', 'b_price')
复制代码

 

posted @   胸怀丶若谷  阅读(715)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
历史上的今天:
2020-07-20 在字符串的开头或结尾处做文本匹配
2020-07-20 针对任意多个分隔符拆分字符串
点击右上角即可分享
微信分享提示