2010-09-14 5 views
1

J'ai une table de type partenairerelations clés étrangères à Django, avec une condition de sélection

PartnerType 
Name 
Description 
RelatedToProject 

J'ai un PartnerMaster

Name 
Address 
PartnerType 

J'ai une table de projet

Name 
Partner (from partner master) 

Le partenaire dans la table de projet doit être uniquement de ceux qui ont RelatedToProject = True

Comment puis-je l'obtenir dans la définition de modèle elle-même.

Répondre

1

Je n'ai pas beaucoup d'expérience avec Django, mais vous voudrez peut-être envisager de supprimer le champ RelatedToProject et d'ajouter une autre classe appelée PartnersRelatedToProjects (ou quelque chose comme ça). Ensuite, configurez simplement une clé étrangère normale à partir de cette nouvelle classe dans la table Partner et, dans la classe Project, configurez une clé étrangère normale pour cette nouvelle table.

Vous devez ensuite suivre les partenaires associés aux projets en les ajoutant à la nouvelle table PartnersRelatedToProjects.

class Partner(models.Model): 
    Name = models.CharField(max_length=200) 
    Description = models.CharField(max_length=200) 

class PartnersRelatedToProjects(models.Model): 
    partner = models.ForeignKey('Partner') 

class Project(models.Model): 
    name = models.CharField(max_length=200) 
    partner = models.ForeignKey('PartnersRelatedToProjects') 
Questions connexes