DRF SimpleJWT 删除密码并添加日期字段

2024-03-27

我创建了一个从 AbstractBaseUser 扩展的自定义用户模型,其中我从用户那里获得的唯一数据是用户 ID、用户(用户名字段)和日期(必需且格式为年-月-日)并且用户的创建工作正常,正如您从下图中的数据库中看到的那样

Used password = None and last_login = None参考一下,我不需要密码和last_login 表。

然后,创建一个只有经过身份验证的用户才能访问的视图。

为了处理身份验证,使用简单JWT https://github.com/SimpleJWT/django-rest-framework-simplejwt。在 urls.py 中

# JWT Token
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain'),
# Get a new token before the old expires.
path('api/token/refresh/', TokenRefreshView.as_view, name='token_refresh'),

并通过去http://127.0.0.1:8000/api/token/ http://127.0.0.1:8000/api/token/,这就是我所看到的(按预期工作)

我之前已经在另一个项目中使用包含该数据(用户和密码)的用户模型对用户和密码进行了测试,并且工作正常。现在,如果我尝试使用现有用户但没有密码进行发帖,我会收到警告并且无法发帖

该字段不能为空。

如果我添加除空格以外的任何内容,则会出现以下错误

/api/token/ 处的类型错误 “NoneType”类型的对象没有 len()

如何删除密码字段?另外,我怎样才能添加日期字段?


我也遇到了同样的问题,并且以某种方式我设法解决了这个问题。

这是解决方案,

  1. 覆盖TokenObtainPairSerializer class __init__方法如下,

  2. Use del password所以它不会询问您密码并添加您想要的任何字段。

class CustomSerializer(TokenObtainPairSerializer): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields[self.username_field] = serializers.CharField() del self.fields['password'] self.fields['last_login'] = serializers.DateField(initial=datetime.date.today)

这确实有效。

这是参考-如何在 django Rest 框架中跳过或删除 simplejwt 令牌身份验证中的密码字段? https://stackoverflow.com/questions/61475301/how-to-skip-or-remove-password-field-in-simplejwt-token-authentication-in-django?

如果有人对此有更好的解决方案,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DRF SimpleJWT 删除密码并添加日期字段 的相关文章

随机推荐

  • 使用 FFT 进行 Matlab 模板匹配

    我正在努力解决 Matlab 中傅立叶域中的模板匹配问题 这是我的图片 艺术家是 DeviantArt 上的 RamalamaCreatures 我的目标是在负鼠的耳朵周围放置一个边界框 就像这个例子 我使用normxcorr2执行模板匹配
  • Stripe webhook 签名失败 - Stripe.net

    我正在尝试使用 Jayme Davis 的 C 库 Stripe net 来实现 stripe webhook 我已经在条带仪表板中设置了测试端点并生成了秘密 端点命中良好 并将使用 StripeEventUtility ParseEven
  • Django Celery 内存未释放

    在我的 django 项目中 我有以下依赖项 Django 1 5 4 django celery 3 1 9 amqp 1 4 3 海带 3 0 14 librabbitmq 1 0 3 按照建议https stackoverflow c
  • MongoDB:文档大小会影响查询性能吗?

    假设一款手机游戏由 MongoDB 数据库支持 其中包含User包含数百万份文档的集合 现在假设必须与用户关联的几十个属性 例如一个数组 id的值Friend文件 他们的用户名 照片 一系列 id的值Game文件 上次登录日期 游戏货币数量
  • C++ 传递字符串文字而不是 const std::string&?

    我有以下代码 使用 g 进行编译时没有警告 Wall pedantic include
  • Kotlin 中带有 val 的循环引用

    在 Kotlin 中 假设我有data class A val f B and data class B val f A 我想初始化本地var a A and var b B这样a f is b and b f is a A f and B
  • CUDA __syncthreads() 编译正常,但带有红色下划线

    我已经使用 CUDA 4 2 一周了 但遇到了一些问题 当我编写 syncthreads 函数时 它会带有下划线 看起来是错误的 然后 如果我将鼠标放在该函数上 则会出现一条消息 标识符 syncthreads 未定义 但是当我编译我的项目
  • VB6 解析器/词法分析器/脚本编写器

    我有一个 VB6 游戏 它运行得很好 但我一直在考虑创建一个脚本引擎的想法 我想我希望 VB6 为我读取纯文本脚本文件 然后 lex parse execute 它们 我有很好的编程经验 之前也搭建过一个简单的C编译器 以及一个LOGO模拟
  • Android ExpandableListView 和 onChildClick 不起作用

    我已经阅读了很多与我遇到相同问题的线程 但我无法弄清楚发生了什么 我有一个可扩展的列表视图 但我无法使 onChildClickListener 工作 onGroupClickListener 工作正常 但我并不真正需要它 我看了很多例子
  • 在 Cocoa 中创建动画 GIF - 定义帧类型

    我已经能够改编在 SO 上找到的一些代码 从我的视图的 屏幕截图 生成动画 GIF 但结果是不可预测的 GIF 帧有时是完整图像 完整帧 替换 模式 正如 GIMP 所标记的那样 其他时候只是与上一层的 差异 组合 模式 据我所知 当涉及的
  • 如何自动初始化 Perl 中的所有标量变量?

    Perl 自动初始化变量 https stackoverflow com questions 260703 when does perl auto initialize variables to undef默认情况下 有没有办法覆盖这个默认
  • 获取特定 S3 对象的下载计数

    我有许多 S3 对象可供我的客户使用 由于我想按使用情况向客户计费 我想知道是否有任何聪明的方法来获取给定文件的下载次数 或者 我想我可以解析 S3 提供的日志文件 但对于每个客户 1000 万次以上的提取 这可能是一项艰巨的任务 有任何想
  • $rootscope 值在控制器中未定义

    我在运行中定义了一个 rootscope 对象 如下所示 Start the AngularJS App var angularApp angular module angularApp Run at the start of the An
  • C# 9 中的 Init-Only 和 ReadOnly 有什么区别?

    我正在经历C 9 新特性 https devblogs microsoft com dotnet welcome to c 9 0 即将发布 仅初始化 https devblogs microsoft com dotnet welcome
  • 在R中用渐变比例填充多边形

    我想创建一个仪表来可视化一个变量对另一个变量是否有或多或少的影响 我构建了一个函数来绘制仪表 并用 3 种不同的颜色填充它 gg gauge lt function pos breaks c 0 33 66 100 determinent
  • 使用 --allow-releaseinfo-change 进行 apt-get update 的缺点

    参考这个issue https stackoverflow com questions 68802802 repository http security debian org debian security buster updates
  • 如何将二维指针数组作为 const 传递?

    如果我创建一个二维指针数组并将其传递给一个函数 int main int array 2 2 int a 5 int b 10 array 0 0 a array 1 1 b test array 我如何定义这个函数以使以下 3 个语句都不
  • c++/cli 接口重写的显式实现

    我有两个接口 public interface I1 A MyProperty get set public interface I2 I1 new B MyProperty get set 在 C 中 我可以像这样显式实现 public
  • 将可变宽度/高度图像置于固定高度/可变宽度容器内居中

    Goal 一个包装纸div那是固定的height和变量width 该包装包含一张图片 该图片的高度和宽度可变 可以是纵向或横向 图片应自动调整为90 包装纸的width or 90 包装纸的高度 以最小者为准 它还应该在水平和垂直方向上始终
  • DRF SimpleJWT 删除密码并添加日期字段

    我创建了一个从 AbstractBaseUser 扩展的自定义用户模型 其中我从用户那里获得的唯一数据是用户 ID 用户 用户名字段 和日期 必需且格式为年 月 日 并且用户的创建工作正常 正如您从下图中的数据库中看到的那样 Used pa