2013-07-19 4 views
0

views.pyкак установить имя пользователя в модели пользователя в случайной последовательности

def index(request): 
    registerform = UserRegisterForm() 
    if request.method == 'POST': 
     if 'password' in request.POST: 
      registerform = UserRegisterForm(request.POST)  
      if registerform.is_valid(): 
       result = registerform.save(commit=False) 
       result.set_password(request.POST['password'])  
       result.save() 
       member.user_id = user.id 
       member.member_id = result.id 
       member.save() 
      '''' 
    return render(request,'index.html',{'registerform': registerform,}) 

forms.py

class UserRegisterForm(forms.ModelForm): 
    class Meta: 
     model = User 
     fields = ['username','first_name', 'last_name', 'email', 'password', 'is_staff', 'is_active'] 

Я спасаю поля формы с помощью формы.

Поле имени пользователя включено в форму. В шаблоне я сделал поле имени пользователя скрытым. Как создать имя пользователя со случайной строкой при создании профиля пользователя?

+0

Прочитайте первый ответ http://stackoverflow.com/questions/2257441/python-random-string-generation-with-upper-case-letters-and-digits –

+0

Почему бы не попытаться установить первую часть (перед '@') пользователя 'Email' как имя пользователя и если существует bump суффикс, добавив целое число, пока вы не получите уникальное имя пользователя? Таким образом, имена пользователей будут, по крайней мере, удобочитаемыми, поскольку вы берете их из электронной почты. –

+0

@ AamirAdnan, большое предложение. – user2086641

ответ

1

Из этого answer

Вы можете сделать что-то вроде этого:

import random 
import string 

def index(request): 
    registerform = UserRegisterForm() 
    if request.method == 'POST': 
     if 'password' in request.POST: 
      registerform = UserRegisterForm(request.POST)  
      if registerform.is_valid(): 
       username = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(10)) 
       result = registerform.save(commit=False) 
       result.set_password(request.POST['password']) 
       result.username = username  
       result.save() 
       member.user_id = user.id 
       member.member_id = result.id 
       member.save() 
      '''' 
    return render(request,'index.html',{'registerform': registerform,}) 
+0

Спасибо victor .. – user2086641

+0

Добро пожаловать: D –

0

Пожалуйста увидеть, если вы можете использовать это.

import random 
l = list(map(chr, range(97, 123))) 
random.shuffle(l)  
''.join(l)[0:7] 
+0

Всегда печатайте одно и то же имя пользователя. – user2086641

Смежные вопросы