【问题标题】:Pinax Signup and AccountsPinax 注册和帐户
【发布时间】:2023-03-06 12:38:01
【问题描述】:

有谁知道有关 Pinax 注册和“帐户”的文档的良好链接。我正在尝试研究如何在 Django / Pinax 中实现我们的注册流程,并尝试在 Django 的 User 和 Profile 类以及 Pinax 中的 Account 类之间导航。

对我们而言,主要问题是我们有一个注册表单,其中包含一些在申请帐户时必须回答的额外问题。然后,在启用帐户之前,管理员需要接受会员资格。此时,这些额外问题的答案将存储在用户的个人资料中。

我在两种竞争方法之间左右为难。

1) 在请求时创建 User 和 Profile 对象。但以某种方式将它们标记为“待处理”,直到获得批准。

2) 创建某种替代模型类来临时存储这些值,直到获得批准。此时我创建了 User 和 Profile 对象并将信息复制到其中。

我试图从 Pinax 注册代码中推断出这些方法中哪一种最符合 Pinax 的“纹理”,但目前尚不清楚。

所以,经验丰富的 Django/Pinax 开发人员。以下哪种方式更“别致”?

【问题讨论】:

    标签: django registration pinax


    【解决方案1】:

    (1) 有两种变体:(a) 你只依赖于 User 的 active 标志; (b) 你去规范化,并在你的个人资料上有一个类似的标志以避免加入。

    方法 (1) 的主要挑战是,您必须确保在任何时候检索配置文件时,都根据此标志过滤它们。当然,对于只有登录用户才能看到的帐户之类的东西,这不是问题。但是对于 Profile,这可能有点痛苦。

    (2) 没有这个问题。在这种情况下,您可以通过使用由临时配置文件和主配置文件模型共享的抽象基本模型来避免一些冗余。

    底线是我不认为有明显的“pinactic”方式来做到这一点,尽管个人我倾向于(2)。

    【讨论】:

      【解决方案2】:

      大部分文档都在此处:http://pinaxproject.com/docs/dev/ 或此处:http://code.pinaxproject.com/wiki/ 或代码库中。

      最近他们似乎更多地处理代码而减少了文档,因为他们正在开发一个稳定的版本,所以这些文档不是最新的。

      也就是说,Pinax 已经有一种机制可以延迟激活帐户,直到他们验证了他们的电子邮件地址(方法 #1)。相关设置是:ACCOUNT_REQUIRED_EMAIL 和 ACCOUNT_EMAIL_VERIFICATION,因此对代码库的搜索应该会显示它们的使用方式/位置(您可以扩展以用于您的额外问题)。

      我相信他们通过给每个用户一个“活动”标志(在管理员中检查用户对象)来实现这一点,在他们验证他们的电子邮件地址之前,该标志不会设置为 True。我依稀记得有一次手动设置,但仍然无法使用该特定用户登录,因此您需要对此进行测试。

      【讨论】: