2017-06-12 2 views
0

Disons que j'ai la structure d'une application qui ressemble à ceci:choix ForeignKey limite basé sur un autre champ ForeginKey

** models.py **

Class School(models.Model): 
    name = models.CharField(max_length=500) 


Class Manager(models.Model) 
    name = models.Charfield(max_length=500) 
    school = models.ForignKey(School) 


Class Group(models.Model) 
    name = models.Charfield(max_length=500) 
    school = models.ForeignKey(School) 
    manager = models.ForeignKey(Manager, related_name="group_manager") 

Dans le modèle que je veux que les utilisateurs soient en mesure créer des groupes (dans la page de l'école) et choisir parmi les gestionnaires qui appartiennent à la même école seulement!

Une idée?

Répondre

2

Si vous avez une table avec 2 clés étrangères et un nom, il devrait probablement être une table à travers pour la relation ManyToMany entre Shool et Manager.

Class School(models.Model): 
    name = models.CharField(max_length=500) 
    managers = models.ManyToMany(Manager, through='Group') 
+0

Y a-t-il un moyen de le faire en utilisant ForeignKey? – DjangoGuy

+0

Dans votre schéma, un groupe peut faire référence à une école et un directeur. Mais si je comprends bien, il pourrait y avoir plus d'un Magnaer par école. – vZ10

+0

Et s'il y avait un directeur par école? Comment puis-je le faire? – DjangoGuy