web-dev-qa-db-fra.com

Comment rendre facultatif le champ plusieurs-à-plusieurs dans Django?

Lorsque vous avez une relation plusieurs à plusieurs (related_name, pas through) et que vous essayez d'utiliser l'interface d'administration, vous devez entrer l'une des relations même s'il n'est pas nécessaire qu'elle existe pour que vous puissiez créer la première entrée.

Je crée une application qui est un organisateur d'événement. Imaginons que nous ayons des modèles Event et Group, liés par une relation plusieurs à plusieurs.

Django related_name crée une autre table avec les index des deux autres tables.
Mais je ne vois aucune raison pour laquelle cette table supplémentaire a soit remplie.

Si je travaille avec la base de données via phpMyAdmin, je peux créer un Group sans enregistrer un Event, car la connexion entre les deux se fait uniquement via une table séparée, et il n'y a aucune application de valeur de base de données à une date donnée. niveau.

Comment puis-je faire en sorte que l'interface d'administration le réalise?
Comment rendre facultatif le champ plusieurs-à-plusieurs dans Django?

168
DZ.

Si vous voulez pouvoir spécifier la relation de ManyToMany sans la rendre obligatoire, utilisez simplement blank=True:

class Group(models.Model):
    ...
    events = models.ManyToManyField(Event, blank=True)
298
Ludwik Trammer