Supposons que j'ai une propriété de modèle persistante qui n'est pas sauvegardée par un champ de modèle, comment puis-je autoriser la modification de ce champ dans l'interface d'administration?Champs supplémentaires dans l'interface d'administration de Django
Exemple de configuration:
# models.py
# appropriate imports...
class MyModel(Model):
# regular fields.
foo = CharField(max_length=50)
bar = BooleanField()
# ...
# custom property, backed by a file.
def _get_meh (self):
return ... # read from file
def _set_meh (self, value):
... # write to file.
meh = property(_get_meh, _set_meh)
valeur de meh
est stocké dans un fichier sur le disque qui est chemin dépend de la valeur foo
. J'aimerais pouvoir modifier la valeur de meh
à partir de l'interface d'administration.
# admin.py
# appropriate imports...
class MyModelAdmin(ModelAdmin):
# what do I put here?
Remarque: au cas où quelqu'un a besoin de demander, j'utilise la version 1.2.1 de Django, mais la mise à niveau est possible si cela est requis par votre solution. Tout ce qui fonctionne sur Python 2.5 fera l'affaire, je ne peux pas vraiment mettre à jour pour le moment.
Note complémentaire: 'meh' est stocké sur le disque parce que cette valeur particulière est récupérée par un autre logiciel que je ne peux pas/ne veux pas modifier. –
Vous pouvez accéder à la page référencée dans le commentaire de tinsukE ici: http://web.archive.org/web/20120828045035/http://www.hindsightlabs.com/blog/2010/02/11/adding-extra-fields- to-a-model-form-in-djangos-admin/ –