PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

django comment définir des modèles pour les tables plusieurs à plusieurs existantes dans la base de données postgresql

Définir le ManyToManyField sur l'un de vos modèles (par exemple, Sample ) en spécifiant un through option comme documenté ici :

class Sample(models.Model):
    id = ...
    containers = models.ManyToManyField(Container, through='JoinSampleContainer', through_fields=('sample_id', 'container_id'),
        related_name='samples')

Remarque :Vous devez nommer les champs de vos modèles pour plus de lisibilité (et utiliser db_column pour spécifier la colonne DB qui est utilisée). Utilisez id au lieu de sample_id , il est beaucoup plus lisible d'utiliser sample.id au lieu de sample.sample_id . Et utilisez sample au lieu de sample_id , resp container au lieu de container_id sur le modèle traversant.