class Person(models.Model):
    first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)


class InformationType(models.Model):


    class Meta:
        ordering = ['order']
name = models.CharField(max_length=200)
order = models.IntegerField()


class Information(models.Model):
    person = models.ForeignKey(Person)
info_type = models.ForeignKey(InformationType)
value = models.CharField(max_length=200)

@classmethod
def getProxy(cls, info_type):


    class InformationManager(models.Manager):

        def get_query_set(self, *args, **kwargs):
            return super(self.__class__, self).get_query_set(*args, **kwargs
                ).filter(info_type=info_type)

def save(self, *args, **kwargs):
    self.info_type = info_type
super(Information, self).save(*args, **kwargs)


class Meta:
    proxy = True
return type('Information' + str(info_type.pk), (Information,), {'Meta':
    Meta, 'save': save, '__module__': 'contacts.models', 'objects':
    InformationManager()})
Django Admin: автоматически генерировать несколько встроенных строк с одной и той же моделью