Dans l'admin de Django, je voudrais vraiment vraiment comme pour pouvoir afficher un ManyToManyField éditable dans l'affichage de liste.Administrateur Django: ManyToManyField dans list_editable?
Le contrôle ManyToManyField ne doit pas forcément être complet. Le fait de pouvoir enregistrer une seule valeur suffirait pour l'affichage de la liste (bien que les valeurs sous-jacentes soient de type many-to-many).
Mon modèle ressemble à ceci:
class Item(models.Model):
name = models.CharField(max_length=500)
colour = models.ManyToManyField(Colour, related_name='primary_colour')
Si j'essaie ceci dans admin.py
:
class ItemAdmin(admin.ModelAdmin):
list_display = ('name', 'colour')
list_editable = ('colour')
Puis-je obtenir cette erreur:
'ItemAdmin.list_display[6]', 'colour' is a ManyToManyField which is not supported.
Y at-il quelque façon que ce tous que je peux montrer un ManyToManyField éditable pour editi rapide ng dans l'affichage de la liste?
Je trouve cette question connexe, qui explique comment rendre les valeurs visibles dans l'affichage de la liste, mais non modifiable: ManyToManyField widget in a django admin change list?
Merci! Je pense que j'ai besoin d'un peu plus de conseils ici: je peux faire fonctionner ça en l'état, mais que dois-je mettre dans 'render_foo'? Devrait-il être un formulaire avec une liste de sélection où l'utilisateur peut sélectionner plusieurs couleurs et qui soumet à 'process_foo' via Ajax, est-ce l'idée? – Richard
Vous n'avez pas besoin d'un formulaire pour envoyer des données, utilisez simplement ce dont vous avez besoin et envoyez les données avec ajax au backend, n'oubliez pas de le valider. HTML5 [attributs de données] (http://ejohn.org/blog/html-5-data-attributes/) est un moyen sympa de gérer les données, vous pouvez mettre à jour l'attribut avec jquery ou javascript brut onclick ou sélectionner change. –