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')
学以致用,知行合一
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
2020-07-20 在字符串的开头或结尾处做文本匹配
2020-07-20 针对任意多个分隔符拆分字符串