J'ai deux modèles, 'Product' et 'Range', qui doivent être liés par un champ many to many. La classe 'Produit' est dans une application que je n'ai pas écrite, donc elle ne peut pas être modifiée (je peux cependant modifier le modeladmin pour elle). Je veux que les 'Ranges' dans lesquelles se trouve un 'Produit' soient éditables dans l'administration, et je veux le faire avec un FilteredSelectMultiple, pas en ligne dans l'administration.
simplifié 'models.py' :
class Product(models.Model):
name = models.CharField(max_length=64)
#etc...
#I can't modify this class
class Range(models.Model):
name = models.CharField(max_length=32)
products = models.ManyToManyField(Product, related_name='ranges')
et admin.py :
class ProductAdmin(admin.ModelAdmin):
# What do I put here to get a multi-select box for ranges?
# Preferrably with one of those 'add' buttons to popup a window
# to add ranges.
Si je pouvais modifier Products, je pourrais y ajouter un champ ManyToManyField en utilisant la table de passage existante, et cela fonctionne bien, mais comme indiqué, je ne peux pas (ou ne veux pas car cela rendrait les mises à jour de l'application externe vraiment pénibles).
Merci d'avance pour toute aide ! (PS : j'espère qu'il est facile de voir ici pourquoi je ne veux pas utiliser de formulaires d'administration en ligne - cela rend l'interface utilisateur inutilement complexe).