title: Replace ArrayField for several fields from other models in django-admin
body: <p>I want to store model fields as array of foreign keys to other atomic-Models. It makes model more flexible: I can add/remove/inherit(if it's tree node) any of predefined properties without programming.</p>
  
  <p>Let's start with atomic-Models. It contain some classified properties.</p>
  
  <pre><code>class Liquid(models.Model):
      volume = models.DecimalField(max_digits=12, decimal_places=6)
  
  class Granular(models.Model):
      weight = models.DecimalField(max_digits=16, decimal_places=9)
  
  class Serial(models.Model):
      lot_number = models.CharField(max_length=16)
      estimated_release_time = models.DateTimeField()
      deadline_time = models.DateTimeField())
  </code></pre>
  
  <p>I want to emulate the following code. It's not valid because:<br>
  1. I want to store foreign keys to several models (<a href="https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#generic-relations" rel="nofollow">GenericForeignKey</a> can help);<br>
  2. <a href="https://docs.djangoproject.com/en/1.8/ref/contrib/postgres/fields/#arrayfield" rel="nofollow">ArrayField</a> doesn't support array of foreign keys yet;</p>
  
  <pre><code>class Entity(models.Model):
          arr = ArrayField(models.ForeignKey(DifferentAtomicModels))
  </code></pre>
  
  <p>Emulation is the following. Where even numbers is pk of django.contrib.contenttypes.models.ContentType, odd numbers is pk of atomic-Model (atomic-model obtained from the previous even number).</p>
  
  <pre><code>class Entity(models.Model):
      arr = ArrayField(models.IntegerField(), null=True, blank=True)
  </code></pre>
  
  <p>Well, in in django-admin changelist_view and changeform_view I want to replace arr field with fields from another models obtained from it.</p>
  
  <p>What is the way to achieve this? Where it's better to intervene to django-admin behaviour (override formfield, make custom widget, smth. else...)? Now I'm looking into overriding ModelAdmin -> changeform_view, get_form, modelform_factory; but it's a lot of relations/inheritions in code, I'm a bit confused... Inlines doesn't help because there is no true foreign keys.</p>