On 06/22/06 18:08, mamcxyz wrote:
> I do this:
> 
> (I copy this class from the cookbox)
> 
> class Manipulator(forms.Manipulator):
>     default = {}
>     done = False
> 
>     def getData(self, request):
>         return request.POST
> 
>     def getForm(self, data, errors):
>         return forms.FormWrapper(self, data, errors)
> 
>     def process(self, request):
>         data = self.getData(request)
>         if data:
>             new_data = data.copy()
>             errors = self.get_validation_errors(new_data)
>             if not errors:
>                 self.do_html2python(new_data)
> 
>                 self.done = True
>                 return self.complete(request, new_data)
>         else:
>             errors = {}
>             new_data = self.default
>         self.form = self.getForm(new_data, errors)
>         return self.form
> 
>     def complete(self, request, data):
>         pass
> 
> class SingUpForm(Manipulator):
>     fields = (
>         forms.TextField(field_name='username', is_required=True,
> validator_list=['isAlphaNumeric'], maxlength=30),
>         forms.TextField(field_name='first_name', maxlength=30),
>         forms.TextField(field_name='last_name', maxlength=30),
>         forms.EmailField(field_name='email', maxlength=50),
>         forms.TextField(field_name='password', is_required=True,
> maxlength=80),
>         forms.TextField(field_name='phone', is_required=True,
> maxlength=10),
>         forms.TextField(field_name='celular', is_required=True,
> maxlength=10),
>         forms.SelectField(field_name='sexo', is_required=True,
> choices=(('F', 'Femenino'), ('M', 'Masculino'))),
>         #TODO: Filtrar por pais los deptos...
>         forms.SelectField(field_name='depto', choices=
> fromDictToList(State.objects.values('id', 'name')) ) ,
>         forms.TextField(field_name='ciudad', is_required=True,
> maxlength=50),
>         forms.TextField(field_name='address', is_required=True,
> maxlength=50),
>         )
> 
>     def __init__(self):
>         # You can also define your fields here, if you'd like.
>         pass
> 
>     def complete(self, request, data):
>         #Guardar el usuario...
>         user = User.objects.create_user(data['username'],
> data['email'], data['password'])
> 
>         user.first_name = data['first_name']
>         user.last_name = data['last_name']
> 
>         user.save()
> 
> However, in post I'm getting:
> 
> 'str' object is not callable in
> d:\programacion\otros\python24\lib\site-packages\django\django\forms\__init__.py
> in run_validator, line 341
> 
> The thing is is not clear for my how this work... maybe too much
> exposure to asp.net ;)
> 
> If I understand, the manipulator is a object representation of the html
> form, with optional validator class.
> 
> The process function copy the POST data and run validator then in
> complete must be the concrete action (save the object or redirect)?
> 

I believe validator_list should be a list of callables, not strings.
Maybe try something like:

from wherever import isAlphaNumeric
...
validator_list=[isAlphaNumeric]


--~--~---------~--~----~------------~-------~--~----~
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