Je voudrais ajouter des champs a un model Django en utilisant la methode setattr au lieu de les declarer directement lors de la definition de mon model.
admettons que j'ai une app myapp et un model Foo defini de la maniere suivante:
myapp
└── models
├── foo.py
└── __init__.py
Je voudrais pouvoir faire quelque chose du style:
from django.db import models
class Foo(models.Model):
pass
setattr(Foo, bar, models.CharField(max_length=100))
Ca ne fonctionne pas, la colonne bar n'ai pas rajouter a la DB si je tente de faire une migration.
J'ai essaye egalement de mettre l'appel de la fonction setattr dans init.py, juste apres l'import de la class Foo mais cela ne fonctionne pas non plus.
Je lis la doc depuis un petit moment pour essayer de comprendre comment l'ORM de Django determine quels sont les champs d'un domaine, et savoir si mon probleme a une solution ou pas mais pour l'instant je n'ai encore rien trouve d'interessant.
Des idees?