我一直在寻找最佳实践,但没有找到。我什至找不到其他人需要使用的解决方案。
我需要根据他的其他数据(名字和姓氏)生成用户的用户名,可选地在末尾附加整数,直到我得到唯一的用户名。
我非常喜欢在模型中这样做。有没有一些标准的方法来做到这一点?还是只适合形式?我一直在研究各种User
模型方法以及信号的重载,但没有找到可以添加它的合适位置。
我一直在寻找最佳实践,但没有找到。我什至找不到其他人需要使用的解决方案。
我需要根据他的其他数据(名字和姓氏)生成用户的用户名,可选地在末尾附加整数,直到我得到唯一的用户名。
我非常喜欢在模型中这样做。有没有一些标准的方法来做到这一点?还是只适合形式?我一直在研究各种User
模型方法以及信号的重载,但没有找到可以添加它的合适位置。
一种可能的解决方案是通过pre_save信号。
def my_callback(sender, **kwargs):
obj = kwargs['instance']
if not obj.id:
username = get_unique_username(obj) # method that combines first name and last name then query on User model, if record found, will append integer 1 and then query again, until found unique username
obj.username = username
pre_save.connect(my_callback, sender=User)