Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django中不使用Auth.user添加用户信息的干式方法_Django_Persistent_Django Users_Django Profiles - Fatal编程技术网

在Django中不使用Auth.user添加用户信息的干式方法

在Django中不使用Auth.user添加用户信息的干式方法,django,persistent,django-users,django-profiles,Django,Persistent,Django Users,Django Profiles,我正在编写一个应用程序,在这个应用程序中,我需要注册用户信息,即使用户在Django中还不存在。基本上,我需要插入Auth.user使用的几乎所有字段(我不关心密码)。我还创建了一个配置文件模型,该模型与一个OneToOneField连接到Auth.user模型,我还需要为尚不存在的用户填写这些文件 如果用户稍后将注册到站点(使用Auth.user),我将通过电子邮件查找他,如果找到他,我将合并插入的信息和他提供的信息 问题: 在创建彼此非常相似的模型时,实现用户持久性的最佳方法是什么?我建议在

我正在编写一个应用程序,在这个应用程序中,我需要注册用户信息,即使用户在Django中还不存在。基本上,我需要插入Auth.user使用的几乎所有字段(我不关心密码)。我还创建了一个配置文件模型,该模型与一个OneToOneField连接到Auth.user模型,我还需要为尚不存在的用户填写这些文件

如果用户稍后将注册到站点(使用Auth.user),我将通过电子邮件查找他,如果找到他,我将合并插入的信息和他提供的信息

问题:
在创建彼此非常相似的模型时,实现用户持久性的最佳方法是什么?

我建议在用户模型的“加入日期”或“上次登录”字段中使用虚拟值,如果您想要实现一个解决方案,而不添加一个新字段,只是作为一个指示符标志


使用is_active标志的潜在问题是,如果您开始依赖未设置密码的事实,您可能希望使用此标志来“黑名单”或有效删除帐户,而不从数据库中实际删除其记录(以防止使用相同凭据重新创建帐户等),然后,如果有一天您想要实现替代登录方法(OAuth),那么在这些情况下您的密码字段也不会被设置(巨大冲突)。

我会保持它非常简单,并使用
is_active
标志和密码字段的空白(一起)来确定用户是否创建了帐户。在注册时,如果档案存在,只需提示他验证电子邮件,并设置密码-你应该是所有的setI有一个卖家-客户系统,不同的卖家可以访问不同的客户。如果Seller1注册customer1并将
设置为活动
为假
,则如果Seller2想插入自己关于customer1的信息,则会发生冲突。此外,如果customer1删除了他的帐户怎么办?出于隐私考虑,系统应该删除他提供的所有信息(但不是卖家提供的关于客户的信息)。通过创建抽象级别(UserProfile)来处理信息,并扩展它以满足您的需要