问题标签 [djoser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
82 浏览

python - 具有另一个模型数组的 Django 自定义用户(像购物车一样)

这里是 Django、Django rest_framework 和 Djoser 的新手。

我正在构建您可以认为是一个简单的购物应用程序的后端(想想这个上的咖啡店)。目前,我在一个名为的应用程序中有一个自定义 User 模型authapp,在另一个名为apiapp. 我的目标是允许 User 对象拥有 0 无限数量的 Coffee 对象作为他们的购物车,并让该数据显示在用户端点中。

目前,我的用户模型如下所示models.py

serializers.py中,我有:

在管理仪表板中,我目前在编辑用户对象时看到了这一点(看起来您可以选择和取消选择我创建的任何/所有咖啡对象):

在此处输入图像描述

在所有用户端点,这就是我所看到的(它缺少咖啡对象数组):

在此处输入图像描述

这一切都给我留下了两个问题。

  1. 如何实现列表类型功能以在用户中保存 Coffee 项目?我希望能够添加尽可能多或尽可能少的一个 Coffee 对象。
  2. 如何使用 serializer.py 类在用户端点中显示咖啡对象数组?目前,
0 投票
4 回答
961 浏览

reactjs - Django,Djoser 社交身份验证:在服务器端会话数据中找不到状态。状态码 400

我正在用 django 实现一个身份验证系统并做出反应。这两个应用程序分别运行在 8000、3000 端口上。我已经使用 Djoser 包实现了身份验证系统。这个包使用了一些依赖项 social_core 和 social_django。一切似乎都配置好了。我单击登录 google 按钮...我被重定向到 google 登录页面,然后返回到端口 3000 上的前端反应应用程序,并带有url 上的状态代码参数。

此时我将这些参数发布到后端。后端尝试使用以下代码(social_core/backends/oauth.py)验证状态,检查会话存储中是否存在状态键

此时由于某些原因,状态会话密钥不存在。我收到一条错误消息,指出在会话数据中找不到状态(以下错误)

我回顾了我所做的所有行动:

  1. 给定提供者 google-oauth2 一个重定向 url 来生成后端的前端请求。通过此操作,还会生成 url,状态键存储在具有特定值 (google-oauth2_state) 的会话中。
  2. 前端接收 url 并重定向到 google auth 页面。
  3. 使用 google 进行身份验证并使用 url 上的状态代码参数重定向回前端。
  4. 前端获取数据形式的url,将数据post到后端,验证接收到的状态是否与点(1)上生成的状态相同。

由于某些原因,状态代码没有保留......任何想法和帮助将不胜感激。

谢谢大家。

0 投票
1 回答
317 浏览

django - 使用 Djoser 的 Django 用户配置文件样式身份验证

我正在尝试使用djoser实现身份验证。由于我在项目开始时没有扩展我AbstractBaseUser的 from Django,我决定使用一对一的配置文件关系模式。我有一个单独的用户应用程序,这是我的相关代码:

我在这里想做的是

  1. django User只需向模型添加一个属性即可跳过迁移。
  2. 扩展 Djoser 序列化程序以仅在创建步骤中创建关系。

但是当我尝试使用djoser endpoint (auth/users/create)这样的主体创建具有发布请求的用户时:

我收到此错误:"User() got an unexpected keyword argument 'mobile_number'"。对当前方法或更好方法的任何帮助都会很棒。

0 投票
1 回答
408 浏览

python - 如何将 Djoser 与多个扩展用户一起使用?

您好,我是 django django rest 框架和 djoser 的新手,我只是想知道。如何将 djoser 与多个扩展用户一起使用。下面是我的模型、序列化器和视图。我在互联网上真的找不到任何东西。Djoser 文档没有关于多个用户的任何内容。我应该只使用 Django Rest Framework 的内置令牌身份验证吗?

模型:我正在尝试使用学生模型和教师模型继承用户(如下所示)。我希望 djoser 使用这两个模型来创建用户。

序列化器:

我的序列化程序还没有完成,但我仍然需要重写 create 和 update 方法。

意见:

除了我的观点,我还必须为这些观点设置权限。

0 投票
2 回答
967 浏览

django - 如何覆盖 Djoser 基本端点用户/我

我对 Djoser 有点陌生,我想要做的是当经过身份验证的用户导航到它返回的users/meAPI 端点时,它会返回用户 ID 电子邮件和名称。我希望它也返回自定义信息我该怎么做?

0 投票
1 回答
311 浏览

python - 尝试覆盖 djoser 序列化程序获取 AttributeError:尝试获取字段错误值时出现 AttributeError

我是 djoser 的新手,我是验证用户的用户。然后,我希望在user/me访问时显示患者信息,但我将其覆盖以也显示患者详细信息,但出现此错误

错误

序列化器字段可能命名不正确,并且与UserProfile实例上的任何属性或键都不匹配。原始异常文本为:“UserProfile”对象没有属性“blood_sugar_level”。

模型.py

序列化程序.py

视图.py

0 投票
3 回答
1558 浏览

python - Django Djoser 令牌身份验证不起作用

TLDR:登录后如何以及在哪里获取用户的令牌,并将其作为标头传递给所有后续使用 Django/Djoser 的受限 URL?

我正在尝试使用 Djoser 创建用户登录/注册。在登录后的后端,我得到了身份验证令牌,但是当我尝试访问任何其他页面(例如 /users/me)时,它说:

我在网上查看,到处都说我需要在标题中传递身份验证令牌,但我看到的所有示例都使用 Postman 或 curl,他们只是将令牌复制并粘贴到标题部分。但我想在不知道令牌的情况下使用 Django 来完成它。

我已经看到使用token = request.META['HTTP_AUTHORIZATION']它来获取令牌,但我不确定将它放在哪里,因为我所拥有的只是

在我的 urls.py 文件中,它应该为我处理所有事情,所以我的 views.py 或 models.py 中没有任何内容

然后将令牌值作为标头传递,我已经看到使用 Python requests 包:

但是再一次不知道该放在哪里。

在我的 settings.py 中,我有:

我也尝试过使用基本身份验证,但由于某种原因我永远无法注销。我要问的甚至可以从后端做吗?还是必须从客户端处理?如果是这样,我正在使用 Reactjs,但仍然不确定如何去做。

0 投票
1 回答
190 浏览

django - Django djoser 有两个相同的 url

我正在阅读有关 Django 的 Djoser 框架。

我发现有两个 url 模式要包含,它们都是相同的:

我以为 Django 总是拿第一场比赛

怎么可能选择第二条路径?

0 投票
0 回答
17 浏览

python - Djoser 用户创建路由返回套接字错误

我正在使用 Djoser 从我的前端创建一个用户。当我使用此请求从 React 应用程序创建用户时

请求完成,新用户被创建,但这个很好的错误在 Django 控制台中弹出

有趣的是其他请求在套接字错误后工作正常

执行来自邮递员的完全相同的请求不会导致错误

在此处输入图像描述

我的 Djoser 设置

0 投票
0 回答
91 浏览

django-models - django user.save() 在 create_user 函数中不起作用

user.save() 没有运行。我尝试使用打印功能对其进行调试,发现“已保存用户”从未打印到终端,并且在向 API 发送发布请求时出现 404 错误。我使用 djoser API 进行身份验证。Djoser API 返回

POST /auth/users/

任何帮助将不胜感激。