我在寻找一种方法,分配一个随机生成的数字字母组合给一个用户在我的页面上注册
因此,如果一个用户在我的网站上注册,将有一个随机生成的数字字母组合(我们称之为magic number
)分配给这个用户,并填充到PostgreSQL用户表中
是否有一个共同的方法来这样做
我是否必须在现有类中定义此类函数,或者是否存在不同的工作流
这是我的model
(继承自Djangos AbstractUser
模型):
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
pass
first_name = models.CharField(max_length=500, blank=False)
last_name = models.CharField(max_length=30, blank=False)
def __str__(self):
return self.username
看起来您想要的是与Universally Unique Identifier (UUID) [wiki]相关的东西,它是一个128位的数字,通常用十六进制表示法表示。如果两台(或多台)服务器需要分配应该是唯一的ID,但它们不知道另一台服务器已经分配的ID,则通常使用此方法。严格来说,两台服务器可能生成相同的UUID。但是,要产生大约2.71×1018个数字,就有50%的几率存在两个相同的UUID,这看起来相当大,可以假设不会发生
Django的最新版本有一个^{} [Django-doc],它可以帮助您使用UUID。如文件所述,您可以将其用于:
请注意,您本身不需要将其作为主键。您还可以将其用作与主键一起使用的额外唯一值(例如,slug有时也用于此目的):
例如,如果您希望使用^{} [Django-doc],那么您可能希望使用原始主键。因为以其他方式引用使用
UUIDField
和AutoField
的两个模型可能会很麻烦相关问题 更多 >
编程相关推荐