The problem is that you don't use manipulator.do_html2python(new_data)
which transforms strings to appropriate values.

In your case, you should write something like:
new_user_data['date_joined'] = datetime.now()

Aidas Bendoraitis [aka Archatas]

On 7/17/06, patrickk <[EMAIL PROTECTED]> wrote:
>
> you´re right - I only sent half of the code - will send a full
> example once I´m finished.
>
> I tried to use some of your code:
> now = datetime.now()
> new_user_data['date_joined_date'] = now.strftime("%Y-%m-%d")
> new_user_data['date_joined_time'] = now.strftime("%H:%M:%S")
>
> but got the error:
> combine() argument 1 must be datetime.date, not str
>
> any ideas?
>
>
> Am 17.07.2006 um 16:42 schrieb Aidas Bendoraitis:
>
> >
> > It seems that you are missing the escaping/converting of the  got(ten)
> >  values. Don't you need something like
> > manipulator.do_html2python(new_data) before saving the user? I think
> > there is a risk of SQL injection[1]  in your example.
> >
> > [1] http://en.wikipedia.org/wiki/Sql_injection
> >
> > Aidas Bendoraitis [aka Archatas]
> >
> >
> >
> > On 7/17/06, patrickk <[EMAIL PROTECTED]> wrote:
> >>
> >> here´s the registration I´ve come up with. I´m using a Custom
> >> Manipulator, because I´ve added some fields to the User Model and
> >> need specific validation. I´ve also added a confirmation mail:
> >>
> >> def registration(request):
> >>
> >>      manipulator = RegistrationManipulator()
> >>
> >>      if request.POST:
> >>              new_data = request.POST.copy()
> >>              errors = manipulator.get_validation_errors(new_data)
> >>              if not errors:
> >>
> >>                         ### Send MAIL
> >>                          date= new_data['date_joined_date'] + " " +
> >> new_data['date_joined_time']
> >>                          confirmhash = set_hash(new_data['password'],
> >> date)
> >>                          link = "http://mysite.com/confirm/?"; +
> >> confirmhash
> >>                          content = "something in here" + link
> >>                          toMail = new_data['email']
> >>                          send_mail('[mysite.com] Registration:
> >> confirm', content, '[EMAIL PROTECTED]', [toMail], fail_silently=False)
> >>
> >>                         ### SAVE USER
> >>                          pw_hash = set_password(new_data['password'])
> >>                          user = User.objects.create_user(new_data
> >> ['username'], new_data['email'], pw_hash)
> >>                          user.save()
> >>                          return HttpResponseRedirect("/")
> >>
> >>      else:
> >>          errors = new_data = {}
> >>
> >>      ...
> >>
> >>
> >> Am 17.07.2006 um 13:35 schrieb Aidas Bendoraitis:
> >>
> >>>
> >>> A few weeks ago I browsed through Django core code to get a basic
> >>> understanding how to create a user registration or any other form
> >>> using generic manipulators and how to fill in some values (such as
> >>> last_login) behind the scene.
> >>>
> >>> I was following the guidelines about manipulators at:
> >>> http://www.djangoproject.com/documentation/forms/
> >>>
> >>> To create a user you should do something like that:
> >>>
> >>> def add_profile(request):
> >>>     from datetime import datetime
> >>>     user_manipulator = User.AddManipulator()
> >>>
> >>>     if request.POST:
> >>>         new_user_data = request.POST.copy()
> >>>
> >>>         # fields that have to be left unmodified
> >>>         #new_user_data['username'] = user.username
> >>>         new_user_data['password'] = new_password_data
> >>> ['new_password']
> >>>         now = datetime.now()
> >>>         new_user_data['date_joined_date'] = now.strftime("%Y-%m-%d")
> >>>         new_user_data['date_joined_time'] = now.strftime("%H:%M:%S")
> >>>         new_user_data['last_login_date'] = "1900-01-01"
> >>>         new_user_data['last_login_time'] = "00:00:00"
> >>>         new_user_data['is_active'] = 'on'
> >>>         new_user_data['is_superuser'] = 'off'
> >>>         new_user_data['is_staff'] = 'off'
> >>>         user_errors = user_manipulator.get_validation_errors
> >>> (new_user_data)
> >>>         if not user_errors:
> >>>             user_manipulator.do_html2python(new_user_data)
> >>>             user = user_manipulator.save(new_user_data)
> >>>             #user = User.objects.create_user(
> >>>             #    new_user_data['username'],
> >>>             #    new_user_data['email'],
> >>>             #    new_user_data['password']
> >>>             #)
> >>>             user.set_password(new_user_data['password'])
> >>>             user.save()
> >>>             ...
> >>>
> >>> I hope this will help you. And if somebody has a better solution how
> >>> to manage filling fields with values automagically, please share
> >>> that
> >>> wwith everybody.
> >>>
> >>> Good luck!
> >>> Aidas Bendoraitis [aka Archatas]
> >>>
> >>>
> >>> On 7/16/06, patrickk <[EMAIL PROTECTED]> wrote:
> >>>>
> >>>> nice. didn´t see that.
> >>>>
> >>>> Am 15.07.2006 um 18:29 schrieb [EMAIL PROTECTED]:
> >>>>
> >>>>>
> >>>>> There is:
> >>>>> http://code.djangoproject.com/wiki/FormField
> >>>>>
> >>>>> Chris
> >>>>>
> >>>>>
> >>>>>>
> >>>>
> >>>>
> >>>>>
> >>>>
> >>>
> >>>>
> >>
> >>
> >>>
> >>
> >
> > >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to