【发布时间】:2016-08-03 18:13:04
【问题描述】:
嗯,这有点复杂,但让我自己解释一下。我想创建一个 RESTful 服务。此服务将包含用户,但不是以经典方式。
我想根据随机哈希创建用户,我将使用uuid 来实现。最重要的是我不需要username、password、email 或full_name (?)。这种类型的用户将通过视图上的 GET 参数进行身份验证,仅使用其 username,而不使用其他任何内容。
我阅读了一些关于扩展 Django 用户的文章,但我找不到特别针对这种情况的令人满意的解释。
进一步说明
现在,我可以听到诸如“为什么有人需要特别无密码的用户模型,并且特别认为它非常不安全。”之类的问题。因此,这部分特别适合那些需要逻辑解释才能理解此类请求的人。
在服务中,我想拥有三组用户:
-
anonymous users: 在服务器上请求一些数据的人 -
uuid users:拥有唯一 id 的人。为什么我需要这种类型?因为我想跟踪这些用户的请求并为他们响应特殊数据。如果这些用户在特定几天内不活动,也将被删除。我想我可以通过 cron 作业来做到这一点。 -
admin:这是我,进入管理面板。仅此而已。
我认为这已经足够解释了。
环境
- django 1.9.5
- python 3.5.1
【问题讨论】:
-
您不能为更少的字段扩展模型。模型继承是增量的,您没有办法,只能从头开始创建较小的模型。阅读文档和源代码以获取有关如何根据需要实现用户模型以及不同身份验证后端的帮助。
-
好吧,我把这当成一个信息,但这并不能解决问题。所以,以防万一,我不会删除问题,等待解决方案。一定有办法做到这一点,对吧?
-
他们会如我所说的那样回答:数据库中不能有 less 字段。 Django 为像你我这样的人提供了一个
AbstractBaseUser类。您不是第一个要求使用较小用户模型的人。以 AbstractBaseUser 为基础,或遵循 django 指南从头开始创建模型。此外,您需要为您想要实现的目标创建一个自定义身份验证后端。
标签: python django rest authentication django-rest-framework