No se que es lo que tratas de lograr, pero estoy seguro que no lo estas haciendo bien.
Si quieres campos arbitrarios puedes hacer esto.
Código Python:
Ver originalclass MyModel(models.Model):
pass
class MyFields(models.Model):
INTEGER = 'I'
DECIMAL = 'D'
DATE = 'F'
# ...
TYPE_CHOICES = (
(INTEGER, 'Integer'),
(DECIMAL, 'Decimal'),
(DATE, 'Date'),
# ...
)
value = models.CharField()
name = models.CharField(max_lenght=100)
type = models.CharField(max_lenght=100, choices=TYPE_CHOICES)
fk = models.ForeingKey(MyModel)
Lo unico que te encargarías es validar dependiendo el tipo. Y poner un indice único entre la fk y el nombre (y opcionalmente el tipo), para no tener llaves repetidas.