代码之家  ›  专栏  ›  技术社区  ›  xRobot

删除或禁用django中用户的用户名

  •  3
  • xRobot  · 技术社区  · 15 年前

    在django中是否有完全删除或禁用用户名的方法?

    我只想使用电子邮件和密码。

    2 回复  |  直到 12 年前
        1
  •  2
  •   Steve Jalim    15 年前

    您不能禁用它,但当用户使用电子邮件地址注册时,您可以生成随机或电子邮件地址派生的占位符用户名。在您的注册表表单的clean()方法中,类似这样的内容将从电子邮件地址生成一个唯一的用户名(因为您不能使用具有非字母数字的用户名):

    highest_user_id = User.objects.all().order_by('-id')[0].id #or something more efficient
    leading_part_of_email = user_email.split('@',1)[0]
    leading_part_of_email = re.sub(r'[^a-zA-Z0-9+]', '', leading_part_of_email) #remove non-alphanumerics
    truncated_part_of_email = leading_part_of_email[:3] + leading_part_of_email[-3:] #first three and last three - will turn "ab@foo.com" into "abab" or b@ into "bb", which is ok
    derived_username = '%s%s' % (truncated_part_of_email, highest_user_id+1)
    
        2
  •  0
  •   Lukas Batteau    13 年前

    自从django 1.2以来,用户名可以包含@,+,。和-字符。

    只需使用电子邮件地址作为用户名。