hola carlos,

can you explain how you make the vat_number value available at the
template level for viewing in, for example, the Account info page?  i
have managed to set up the listeners as you described to add the new
field to the update account form, but i cannot seem to figure out how
to make the value available for viewing on the account info page.

saludos,

steve


On Sep 10, 8:29 am, Carlos Perelló Marín <[email protected]> wrote:
> Btw, I'm not attaching my model to the user model, but to the contact model:
>
> class LocalContact(models.Model):
>     """Contact model extension to store extra tryton info."""
>     contact = models.OneToOneField(Contact, verbose_name=_('Base Contact'))
>
>     vat_number = models.CharField(verbose_name=_('VAT Number'),
> max_length=30)
>
> Carlos Perelló Marín escribió:
>
> > If you want to add just one field, that's a lot of code to write.
>
> > This is what I did:
>
> > def tryton_contact_form_postsave(sender, object=None, formdata=None,
> > form=None,
> >                                  **kwargs):
>
> >     if object is None:
> >         return
>
> >     try:
> >         local_contact = LocalContact.objects.get(contact=object)
> >     except LocalContact.DoesNotExist:
> >         local_contact = LocalContact(contact=object)
>
> >     local_contact.vat_number = formdata['vat_number']
> >     local_contact.save()
>
> > def tryton_contact_add_form_fields(sender, form=None, **kwargs):
> >     """Adds some extra fields to the contact form"""
>
> >     vat_number = ''
> >     if form._contact:
> >         if getattr(form._contact, 'localcontact', None):
> >             vat_number = form._contact.localcontact.vat_number
>
> >     form.fields['vat_number'] = forms.CharField(
> >         label='VAT number', required=True, max_length=100,
> > initial=vat_number)
>
> > Where LocalContact is where my new field is stored and those functions
> > are signal handlers. I'm registering them as:
>
> > form_postsave.connect(tryton_contact_form_postsave, sender=ContactInfoForm)
> > form_init.connect(tryton_contact_add_form_fields, sender=None)
>
> > Also, I'm overriding two templates to show my new field:
>
> > templates/contact/update_form.html
> > templates/contact/view_profile.html
>
> > Cheers.
>
> > Bob Waycott escribió:
>
> >> Ricardo,
>
> >> I don't know that it is a usual task for Satchmo users, but I guess it
> >> could be. At the least, it could be a pretty common practice among
> >> people who are using django-registration.
>
> >> I would advise against your current solution because you've modified
> >> Satchmo code & may risk a less smooth upgrade path.
>
> >> The proper way to do this in my opinion, as with anything else in a
> >> Django project, would be to make your own extension part of a separate
> >> app that is included in your Django apps. I'd recommend your own
> >> forms.py & views.py code that did what you wanted it to do and pass
> >> things off to the appropriate Satchmo views where necessary.
>
> >> So, in your forms.py, you would import the Satchmo form & extend it. In
> >> your views.py, you would do whatever extra work you want to do with your
> >> extended form, calling out to the satchmo view where needed and likely
> >> returning that view's result after finishing your extra processing. In
> >> your urls.py, you would ensure that the url for registration goes to
> >> your custom view. Finally, in the template, you would modify accordingly
> >> to include your extra field(s).

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Satchmo users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/satchmo-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to