Thanks Carlos, that's exactly what I was looking for.
I only have one last thing to figure out, but it's not even that
important.
In my admin.py I have
class ContactProfile_Inline(admin.TabularInline):
model = ContactProfile
class ContactProfileOptions(AutocompleteAdmin):
list_display = ('last_name', 'first_name', 'role')
list_filter = ['create_date', 'role'] #, 'industry']
ordering = ['last_name']
search_fields = ('first_name', 'last_name', 'email')
related_search_fields = {'user': ('username', 'first_name',
'last_name', 'email')}
related_string_functions = {'user': lambda u: u"%s (%s)" %
(u.username, u.get_full_name())}
inlines = [PhoneNumber_Inline, AddressBook_Inline,
ContactProfile_Inline]
admin.site.unregister(Contact)
admin.site.register(Contact, ContactProfileOptions)
This works fine to show the industry on the Contact page, but I'd like
to include industry in the list_display and list_filter. I've tried
using both 'industry' and 'contactprofile.industry'. Do you have any
ideas of how to do that?
Thanks,
Seth
On Aug 26, 10:44 am, Carlos Perelló Marín <[email protected]> wrote:
> What you did is correct, except that you should understand that your
> myApp.myProfile exists in its own database table, so you cannot access
> it directly as user.get_profile().industry until you create its row in
> the myProfile table.
>
> This is the way I do it:
>
> def tryton_contact_form_save(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()
>
> From now, I'm able to do: contact.local_contact to access my extra
> contact information. Just in case you wonder, that's a listener for the
> form_save signal.
>
> I'm not saying this is THE way to do it, given that I'm quite new to
> Satchmo, but it's the way I fixed the problem you are getting.
>
> Cheers.
>
> Seth escribió:
>
>
>
> > user.get_profile() does in fact return the custom profile object.
>
> > The problem is that the custom profile object is either
> > contact.Contact or myApp.myProfile. Never are both accessible.
>
> > The way I was most hopeful about was to extend the Contact model with
>
> > class myProfile(models.Model):
> > contact = models.ForeignKey(User, unique=True)
> > otherInfo = models.CharField()
>
> > AUTH_PROFILE_MODULE = "myApp.myProfile"
>
> > But with that setup
> > User.objects.get(pk=1).get_profile()
>
> > errors out with "Cannot resolve keyword 'user' into field. Choices
> > are: contact, id, otherInfo"
>
> > And if I change to
> > AUTH_PROFILE_MODULE = "contact.Contact"
>
> > user.get_profile().industry
> > errors out with "'Contact' object has no attribute 'industry'"
>
> > and
> > user.get_profile().myProfile
> > errors out with "'Contact' object has no attribute 'myProfile'
>
> > Am I wrong to think that it's possible to have contact.Contact and
> > myapp.myProfile accessible through user.get_profile()?
>
> > On Aug 26, 9:23 am, Bob Waycott <[email protected]> wrote:
>
> >> This may be an oversight ... or something that's changed in Django 1.1 ...
>
> >> Shouldn't it be:
>
> >> user.get_profile() = custom profile object?
>
> >> As opposed to the getProfile() you just used in your post?
>
> >> Seth Boyd wrote:
>
> >>> Sorry for the long delay. I got distracted from this project for a bit.
>
> >>> I'm trying to use the default Django way to make a Profile described
> >>> athttp://docs.djangoproject.com/en/dev/topics/auth/#auth-profilesbut
> >>> I'm running into issues regarding the AUTH_PROFILE_MODULE. In short,
> >>> what do I do with it?
>
> >>> I've tried associating my Profile with both the User model and
> >>> Satchmo's Contact model and switched the AUTH_PROFILE_MODULE from
> >>> contact.Contact to myApp.myProfile to no avail. With
> >>> AUTH_PROFILE_MODULE = "contact.Contact"
> >>> user.getProfile().myExtendedAttributes don't work. And the whole
> >>> store gets borked when AUTH_PROFILE_MODULE = "myApp.myModel" because
> >>> user.getProfile().satchmosContactAttributes are broken.
>
> >>> Thanks again for your help
>
> >>> On Tue, Aug 11, 2009 at 10:52 AM, Nathan Ekstrom
> >>> <[email protected] <mailto:[email protected]>> wrote:
>
> >>> I'd say it all depends on how you want to access the data. Do you
> >>> want to go through the contact model or the user model?
> >>> Associating with the User model should make it more portable
> >>> though, if you ever wanted to use code from it in a non Satchmo
> >>> environment.
>
> >>> On Tue, Aug 11, 2009 at 6:52 AM, Seth Boyd <[email protected]
> >>> <mailto:[email protected]>> wrote:
>
> >>> Thanks for your responses. I have one last question. Is
> >>> there any benefit to associating my custom information with
> >>> satchmo's contact model over django's user model or vice versa?
>
> >>> Thanks again,
> >>> Seth
>
> >>> On Tue, Aug 11, 2009 at 2:42 AM, Carlos Perelló Marín
> >>> <[email protected] <mailto:[email protected]>> wrote:
>
> >>> Nathan Ekstrom escribió:
> >>> > I believe he said User model not product model. As to
> >>> extending the
> >>> > user model I don't know that there is a preferred
> >>> method. Probably
> >>> > the best way so as not to mess with Satchmo too much
> >>> would be to
> >>> > create a 1-to-1 field linking a new model to the user
> >>> model. Then
> >>> > when you need to access your custom fields you just need
> >>> to do
> >>> > user.<custom_model>.field
>
> >>> Which is exactly the method explained in the document
> >>> about extending
> >>> the product model...
>
> >>> Cheers.
>
> >>> > Nathan
>
> >>> > On Mon, Aug 10, 2009 at 2:18 AM, Juanjo
> >>> <[email protected] <mailto:[email protected]>
> >>> > <mailto:[email protected] <mailto:[email protected]>>>
> >>> wrote:
>
> >>> > Follow the documentation:
>
> >>> >http://www.satchmoproject.com/docs/svn/custom-product.html
>
> >>> > Then, if you want your extension class to show in
> >>> the admin with the
> >>> > regular product admin interface, check this on my site:
>
> >>>
> >>> http://juanjoalvarez.net/es/detail/2009/jul/27/why-bad-idea-tm-overri...
>
> >>> > On Aug 9, 11:50 pm, Seth <[email protected]
> >>> <mailto:[email protected]>
> >>> > <mailto:[email protected]
> >>> <mailto:[email protected]>>> wrote:
> >>> > > What is the preferred to extend the user model? I
> >>> need to store
> >>> > more
> >>> > > information about the customer than satchmo does by
> >>> default.
>
> >>> --
> >>> Carlos Perelló Marín
> >>> [P+] SERVICIOS PROFESIONALES
> >>> http://www.pemas.es
> >>> mailto:[email protected] <mailto:[email protected]> ||
> >>> mailto:[email protected] <mailto:[email protected]>
>
> >>> Este mensaje y los ficheros anexos son confidenciales. Los
> >>> mismos
> >>> contienen información reservada de la empresa que no puede ser
> >>> difundida. Si usted ha recibido este correo por error,
> >>> tenga la
> >>> amabilidad de eliminarlo de su sistema y avisar al
> >>> remitente mediante
> >>> reenvío a su dirección electrónica; no deberá copiar el
> >>> mensaje ni
> >>> divulgar su contenido a ninguna persona.
>
> >>> Su dirección de correo electrónico junto a sus datos
> >>> personales forman
> >>> parte de un fichero titularidad de PEMAS Servicios
> >>> Profesionales, S.L.
> >>> cuya finalidad es la de mantener el contacto con Ud. De
> >>> acuerdo con la
> >>> Ley Orgánica 15/1999, usted puede ejercitar sus derechos
> >>> de acceso,
> >>> rectificación, cancelación y, en su caso, oposición
> >>> enviando una
> >>> solicitud por escrito, acompañada de una fotocopia de su
> >>> DNI dirigida a
> >>> PEMAS Servicios Profesionales, S.L. C/ Santos Justo y
> >>> Pastor, 72 - 5,
> >>> C.P. 46022 de Valencia (España).
>
> --
> Carlos Perelló Marín
> [P+] SERVICIOS PROFESIONALEShttp://www.pemas.es
> mailto:[email protected] || mailto:[email protected]
>
> Este mensaje y los ficheros anexos son confidenciales. Los mismos
> contienen información reservada de la empresa que no puede ser
> difundida. Si usted ha recibido este correo por error, tenga la
> amabilidad de eliminarlo de su sistema y avisar al remitente mediante
> reenvío a su dirección electrónica; no deberá copiar el mensaje ni
> divulgar su contenido a ninguna persona.
>
> Su dirección de correo electrónico junto a sus datos personales forman
> parte de un fichero titularidad de PEMAS Servicios Profesionales, S.L.
> cuya finalidad es la de mantener el contacto con Ud. De acuerdo con la
> Ley Orgánica 15/1999, usted puede ejercitar sus derechos de acceso,
> rectificación, cancelación y, en su caso, oposición enviando una
> solicitud por escrito, acompañada de una fotocopia de su DNI dirigida a
> PEMAS Servicios Profesionales, S.L. C/ Santos Justo y Pastor, 72 - 5,
> C.P. 46022 de Valencia (España).
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---