8 votes

Affichage des données ForeignKey dans la page de modification/ajout de l'administration de Django

J'essaie de faire en sorte qu'un attribut d'un modèle apparaisse dans la page de modification/ajout d'un autre modèle dans l'administration de Django. Voici mes modèles :

class Download(model.Model):
    task = models.ForeignKey('Task')

class Task(model.Model):
    added_at = models.DateTimeField(...)

Je ne peux pas intervertir la clé étrangère, donc je ne peux pas utiliser Inlines, et bien sûr fields = ('task__added_at',) ne fonctionne pas non plus ici.

Quelle est l'approche standard pour quelque chose comme ça ? (ou est-ce que je pousse l'Admin trop loin ?)

J'utilise déjà un modèle personnalisé, donc si c'est la réponse, cela peut être fait. Cependant, je préférerais le faire au niveau de l'administrateur.

12voto

Daniel Roseman Points 199743

Si vous n'avez pas besoin de le modifier, vous pouvez l'afficher comme un champ en lecture seule :

class DownloadAdmin(admin.ModelAdmin):
    readonly_fields = ('task_added_at',)

    def task_added_at(self, obj):
        return obj.task.added_at

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X