Hi,
You're trying to setup one-to-one relationship.
It means that producer.mailing_address does have exactly one unique
Address entity. Same goes for physical_address.
What you want is really ForeignKey to address which means that you reuse
addresses to multiple producer.mailing_address.
Then you can omit related names, or like someone suggested use different
related names for both fields.
13.2.2013 21:25, Ray Hatfield kirjoitti:
Hi,
I have a model which requires two addresses: a mailing address and a
physical address. From an OO perspective it makes sense to have an
Address class and the Producer to have Address instances as properties,
but I can't seem to achieve this in django while still being able to
edit the addresses inline as part of the Producer admin.
I've tried this sort of thing:
class Address( models.Model ):
street = models.CharField( ... )
# city state zip, etc.
class Producer( models.Model ):
mailing_address = models.OneToOneField( Address, related_name='+' )
physical_address = models.OneToOneField( Address, related_name='+' )
but when I attempt to inline the addresses in the django admin I run
into trouble. I get errors like:
<class 'producers.models.Address'> has no ForeignKey to <class
'producers.models.Producer'>
(This error is true, of course. But I was under the apparently erroneous
impression that including related_name='+' would prevent django from
setting up the reverse relationship.)
I realize I could add a foreign key to Address to associate it with a
specific Producer but this feels backwards to me. An Address shouldn't
need to know whether it's for a Producer or some other object. It's just
an address.
I've been banging my head on this for far too long. Advice?
--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
--
Jani Tiainen
- Well planned is half done and a half done has been sufficient before...
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.