django - 如何在 django 用户模型中为用户名生成随机值?
问题描述
我对 django 默认用户模型感到满意,但我希望自动生成用户名。我不想创建自定义用户模型。我需要定义一个生成唯一随机用户名的函数,如下所示:
user = User.objects.create_user(username=generate_username())
def generate_username():
pass
我不想生成一个随机用户名random module
,然后检查它是否存在,否则,创建另一个随机用户名,再次检查,依此类推。
有没有一种快速的方法来做到这一点?
解决方案
MeL 的回答绝对可行,但我建议使用这个名为Faker的库。它生成实际名称,而不仅仅是随机字符。所以你的代码应该是这样的:
from faker import Faker
fakegen = Faker()
def generate_username(n=5):
for i in range(n):
fake.first_name() # Megan, Katherine, Robert, so on
文档中有更多示例。上面链接。
注意记得运行
pip install faker
在您继续之前。
编辑
为了防止碰撞,我将提交以下更改:
from faker import Faker
fakegen = Faker()
import random
def generate_username():
# e.g. jonathanfisher2352
return fake.first_name().lower() + fake.last_name.lower() + random.randint(1000, 9999)
推荐阅读
- vcl - 在运行时更改 TBitBtn 字形
- java - 为 React Native 创建原生 Android 模块时出现“依赖错误”
- jquery - 如果元素包含(关键字)做某事
- swift - 如何从流数据中实现 AudioQueue
- c# - 将 TextBox.Text 绑定到 DataSet.DataSetName
- c - 如何通知服务器客户端正在关闭连接
- javascript - 数组推送改变所有元素
- java - Android:允许通过扩展 EditText 在画布上输入文本
- sql-server - 如何对数据库项目进行可跟踪的架构更改?
- python - 如何使用 Django 设置 OrientDB PyOrient OGM?