Python Django用于注册和登录的不同用户名字段

Python Django用于注册和登录的不同用户名字段,python,django,Python,Django,我希望有一个用户名\字段用于注册我的用户(假设此字段是国家ID),另一个用于登录(内部ID) 我的过程如下: 用户使用姓名、电子邮件和国家/地区ID(作为用户名\字段)以及密码进行注册 接下来,管理员验证此信息并确认此用户的注册,并自动分配内部ID 然后(通过电子邮件)通知用户此操作,因此可以使用此内部id登录 那么,是否有可能为注册和登录设置不同的用户名字段?用户名应该是唯一的(很明显,在登录时您将如何识别您的用户?),因此在当前的表述中,您的问题没有真正意义。如果您不希望用户在申请注册时

我希望有一个用户名\字段用于注册我的用户(假设此字段是国家ID),另一个用于登录(内部ID)

我的过程如下:

  • 用户使用姓名、电子邮件和国家/地区ID(作为用户名\字段)以及密码进行注册

  • 接下来,管理员验证此信息并确认此用户的注册,并自动分配内部ID

  • 然后(通过电子邮件)通知用户此操作,因此可以使用此内部id登录


那么,是否有可能为注册和登录设置不同的用户名字段?

用户名应该是唯一的(很明显,在登录时您将如何识别您的用户?),因此在当前的表述中,您的问题没有真正意义。如果您不希望用户在申请注册时提供用户名,那么您的问题不是“注册时有一个用户名字段,登录时有另一个用户名字段”,而是“如何允许用户注册而不提供用户名字段的值”

一种可能的解决方案是使用系统提供的唯一随机值(即uuid或根据用户的ip+当前时间戳+一些随机值构建的东西)作为临时用户名

另一种方法是对注册使用不同的模型,并且只在验证过程中创建用户(如果您使用默认的
User
模型,这将有助于告知尚未验证的注册)


在这两种情况下,您当然都必须编写自己的表单和视图(最好将可以编写的内容委托给
contrib.auth
应用程序-也不要试图重新发明轮子)。

也许我的公式不是最好的,但您的回答帮助了我