Уведомления

Группа в Telegram: @pythonsu

#1 Март 17, 2011 14:04:57

del3d
От:
Зарегистрирован: 2010-03-12
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

регистрация пользователей

Привет!

Делаю регистрацию на сайте. Имеется модель:

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 можно, но… как вы посоветуете?



Офлайн

#2 Март 17, 2011 15:37:55

fth
От:
Зарегистрирован: 2010-07-26
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

регистрация пользователей

Ну начнём с того, что я не вижу необходимость писать велосипед уже отлично и давно реализованный в модулях (см. стандартную 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 и написать собственные правила проверки сравнивающие пароли. (я кстати не понял, вы что собираетесь хранить пароли в открытом виде?!)



Офлайн

#3 Март 20, 2011 06:20:09

MasterCody
От:
Зарегистрирован: 2010-04-05
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

регистрация пользователей

Советую перед тем как что-то писать - изучить документация Django.



Офлайн

#4 Март 29, 2011 08:39:41

del3d
От:
Зарегистрирован: 2010-03-12
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

регистрация пользователей

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).



Отредактировано (Март 29, 2011 08:41:49)

Офлайн

#5 Март 29, 2011 09:40:00

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

регистрация пользователей

чем не угодил django-registration? как минимум, можешь там подглядеть формы.

Офлайн

#6 Март 29, 2011 15:06:15

freemon
От:
Зарегистрирован: 2008-07-17
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

регистрация пользователей

А из request.POST взять не получается?..
Ох и люди )..



Офлайн

#7 Март 29, 2011 21:10:17

del3d
От:
Зарегистрирован: 2010-03-12
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

регистрация пользователей

slav0nic
чем не угодил django-registration? как минимум, можешь там подглядеть формы.
Спасибо за свежую мысль.. подглядел.. сделал..
freemon
А из request.POST взять не получается?
если уж с формами связался, то request.POST не рулит..



Офлайн

#8 Апрель 3, 2011 02:24:15

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

регистрация пользователей

del3d
Посмотри аргументу у DateTimeFiled ;)
Либо можешь в форме переписать метод save()



Офлайн

#9 Апрель 4, 2011 22:50:56

fth
От:
Зарегистрирован: 2010-07-26
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

регистрация пользователей

del3d
Нет, когда я говорил о правилах проверки формы я имел в виду другое.
Ознакомьтесь:
http://docs.djangoproject.com/en/dev/ref/forms/validation/



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version