Django身份验证用户
我正在开发具有多种类型用户的网页,每种用户都具有不同的配置文件属性。我想使用内置的身份验证系统,但: a) 我想使用django注册。 b) 我只能将User.get_profile指向一个配置文件模型Django身份验证用户,django,authentication,Django,Authentication,我正在开发具有多种类型用户的网页,每种用户都具有不同的配置文件属性。我想使用内置的身份验证系统,但: a) 我想使用django注册。 b) 我只能将User.get_profile指向一个配置文件模型 如何以良好的方式实现这一点?我没有使用django注册,所以我不知道它需要什么。对于问题的第二部分,一种方法是 将用户档案与每个用户 添加不同类型的ProfileProperty类,并使用 我知道,这有点牵强 我不是python、django或数据库方面的专家,但几周前我遇到了一个类似的问题,在
如何以良好的方式实现这一点?我没有使用django注册,所以我不知道它需要什么。对于问题的第二部分,一种方法是
用户档案
与每个用户
ProfileProperty
类,并使用李>
我知道,这有点牵强 我不是python、django或数据库方面的专家,但几周前我遇到了一个类似的问题,在#django上有人建议我使用泛型关系来实现这一点 我创建了一个用户配置文件模型,它(通过OneToOnefield)与“true”配置文件相似,并且使用contrib.content-type和泛型关系,我能够使用几种不同的文件类型 请注意,如果您不怕在每个get_profile()上再次访问数据库,那么这应该对您有用 另一种方法是创建一个包含所有配置文件类型的所有字段的大表,并使用某种钩子(或重新实现自定义save())根据配置文件类型检查失效字段。但对我来说,这看起来很复杂,特别是如果你想有很多不同的配置文件类型 另一种选择是创建一个TextField派生的自定义字段,并将其用作字典的存储,保存时对其进行pickle,加载时从中取消pickle。通过一些黑客攻击,您当然可以将一些模型属性映射到字典键。这将允许很大的灵活性 免费提示:我还使用fixture测试我的应用程序,忘记检查post_save信号的原始参数是否为True,以防止在使用manage.py loaddata时执行UserProfile创建。正如我在post_save回调中编写的创建“true”配置文件一样,异常是一种奇怪的情况,直到我发现发生了什么 可用资源: