In my project, I have a contacts model.
I have separate models, such as Person, Institution, Supplier, or Shipper that 
all have a foreign key to contacts.
So it looks like you’re doing it the way that I would do it.

From: [email protected] [mailto:[email protected]] On 
Behalf Of Jani Tiainen
Sent: Friday, October 20, 2017 2:24 PM
To: [email protected]
Subject: Re: How to store a key to a something that can be either a person or 
an organization?

I would be a bit cautious with generic foreignkeys since they don’t provide 
database integrity checks.

IOW, you can break your data very easily.

On 20 Oct 2017, at 19.55, Ruben Alves 
<[email protected]<mailto:[email protected]>> wrote:

You can use Generic Key: 
https://docs.djangoproject.com/en/1.11/ref/contrib/contenttypes/



Em sexta-feira, 20 de outubro de 2017 07:59:35 UTC-2, Antonis Christofides 
escreveu:
Hello,

Two real examples that I've faced:

    class MeteorologicalStation(models.Model):
        ...
        owner = models.ForeignKey(to a person or organization)


    class Document(models.Model):
        ...
        authors = models.ManyToManyKey(to persons or organizations)

What I do is I create a superclass that I call Lentity (short for "legal
entity", despite the fact that it could refer to a group of people and is not
necessary legal) and the two subclasses Person and Organization, with
multi-table inheritance.

But since I guess that this is a relatively common problem, I was wondering
about what other people are doing.

Thanks!

Antonis

--
Antonis Christofides
http://djangodeployment.com<http://djangodeployment.com/>


--
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]<mailto:[email protected]>.
To post to this group, send email to 
[email protected]<mailto:[email protected]>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/f1fcc861-b3f3-43dc-9bad-a2511de4da44%40googlegroups.com<https://groups.google.com/d/msgid/django-users/f1fcc861-b3f3-43dc-9bad-a2511de4da44%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
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]<mailto:[email protected]>.
To post to this group, send email to 
[email protected]<mailto:[email protected]>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/72D4C974-6300-4F06-8C80-C4E0EA9D398F%40gmail.com<https://groups.google.com/d/msgid/django-users/72D4C974-6300-4F06-8C80-C4E0EA9D398F%40gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

-- 
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 https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/c2b61c3f509448b297e9ae3ee2b7979d%40ISS1.ISS.LOCAL.
For more options, visit https://groups.google.com/d/optout.

Reply via email to