Найти - Пользователи
Полная версия: регистрация пользователей
Начало » Django » регистрация пользователей
1
del3d
Привет!

Делаю регистрацию на сайте. Имеется модель:
class Users(models.Model):
login = models.CharField(unique=True, max_length=255)
password = models.CharField(max_length=255)
date_create = models.DateTimeField()
..имеется класс формы:
class RegForm(forms.ModelForm):
login = forms.CharField(label='Логин')
password = forms.CharField(label='Пароль', widget=forms.PasswordInput)
class Meta:
model = Users
exclude = ('date_create')
имеется функция во views:
def reg(request):
''' Регистрация нового пользователя '''
if request.method == 'POST':
form = RegForm(request.POST)
if form.is_valid():
u = form.save()
return HttpResponseRedirect('/')
else:
form = RegForm()
return render_to_response('reg.html', {'form': form})
Вопросы:
1. Как мне в БД, в поле date_create записать дату регистрации пользователя (в примере записывается только логин/пароль)?
2. Как сделать еще одно поле для подтверждения пароля?

Я понимаю, что форму можно сделать вручную какую нужно и данные выбрать из POST можно, но… как вы посоветуете?
fth
Ну начнём с того, что я не вижу необходимость писать велосипед уже отлично и давно реализованный в модулях (см. стандартную User и django-registration), судя по вопросам вряд ли вы пишете что-то из ряда вон выходящее.
del3d
Как мне в БД, в поле date_create записать дату регистрации пользователя (в примере записывается только логин/пароль)?
http://docs.djangoproject.com/en/dev/ref/models/fields/#datefield
Обратить внимание на auto_now_add
del3d
Как сделать еще одно поле для подтверждения пароля?
Рекомендую внимательно ознакомиться http://docs.djangoproject.com/en/dev/topics/forms/modelforms/ ибо в вашем примере видно непонимание работы ModelForm
По делу создать дополнительное поле confirm_password и написать собственные правила проверки сравнивающие пароли. (я кстати не понял, вы что собираетесь хранить пароли в открытом виде?!)
MasterCody
Советую перед тем как что-то писать - изучить документация Django.
del3d
MasterCody
Советую перед тем как что-то писать - изучить документация Django.
Вам бы русский язык за 5 класс подтянуть.
fth
создать дополнительное поле confirm_password и написать собственные правила проверки
Вот как я понял:
#forms.py
...
class RegFormU(MyModelForm):
login = forms.CharField(label='Логин', min_length = 4)
password = forms.CharField(label='Пароль', widget=forms.PasswordInput, max_length = 10)
confirm_password = forms.CharField(label='Подтверждение', widget=forms.PasswordInput, max_length = 10)
def check_pass(self):
if self.password == self.confirm_password:
return True
else:
return False
class Meta:
model = Users
...
#view.py
...
form_u = RegFormU(request.POST)
if form_u.check_pass():
...
Только я не могу обратиться к полям класса (password и confirm_password).
slav0nic
чем не угодил django-registration? как минимум, можешь там подглядеть формы.
freemon
А из request.POST взять не получается?..
Ох и люди )..
del3d
slav0nic
чем не угодил django-registration? как минимум, можешь там подглядеть формы.
Спасибо за свежую мысль.. подглядел.. сделал..
freemon
А из request.POST взять не получается?
если уж с формами связался, то request.POST не рулит..
aliens
del3d
Посмотри аргументу у DateTimeFiled ;)
Либо можешь в форме переписать метод save()
fth
del3d
Нет, когда я говорил о правилах проверки формы я имел в виду другое.
Ознакомьтесь:
http://docs.djangoproject.com/en/dev/ref/forms/validation/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB