2010-10-14 17 views
2

J'ai une GenericForeignKey dans une ligne sur une page admin. En tant que GenericFK, deux champs sont impliqués: Le FK ContentType et le champ entier object_id. Le GenericFK peut, bien sûr, pointer vers une variété de modèles et d'objets, certains qui ont des champs d'image et d'autres pas. Mon but est de personnaliser l'un des widgets (ce peut être l'un ou l'autre, mais j'essaie d'en faire un object_id) de telle sorte que si l'objet pointé par GenericFK a une image, il en affiche une vignette. Le problème que je rencontre est que je ne suis pas au courant d'un moyen pour un widget de connaître la valeur d'un autre champ quand il est dessiné, car pour que le widget object_id ou ContentType trouve ce que objet que GenericFK pointe vers, il a besoin des deux valeurs. Existe-t-il un moyen de le faire, à part d'utiliser complètement les appels AJAX pour insérer les vignettes après le chargement de la page?Django GenericForeignKey Widget: Utilisation de la valeur d'un champ dans le widget d'un autre

Répondre

0

Je n'ai pas une solution complète, mais un coup d'oeil à: (! Ou même models.Field)
https://docs.djangoproject.com/en/1.4/ref/forms/widgets/#multiwidget et
https://docs.djangoproject.com/en/1.4/ref/forms/fields/#django.forms.MultiValueField

Maintenant, le champ de Django ne GenericForeignKey malheureusement hérite pas de MultiValueField, mais peut-être vous pourrait faire votre propre classe de terrain qui hérite des deux ... vous seriez alors sur le chemin pour être en mesure d'utiliser un MultiWidget