2016-11-29 2 views
0

Disons que j'ai ces classes:choix limites de ManyToManyField à un foreginkey

models.py

class Parent(models.Model): 
    title = models.CharField(max_length=250) 


class Child(models.Model): 
    parent = models.ForeignKey(Parent) 
    title = models.CharField(max_length=250) 


class Family(models.Model): 
    title = models.CharField(max_length=250) 
    parent = models.ForeignKey(Parent) 
    child = models.ManyToManyField(Child) 

le problème avec ce code, la forme de la famille montre tous les objets « enfants ».

Je dois montrer des objets "Enfant" seulement si l'Enfant est apparenté aux objets "Parent" dans la forme familiale.

s'il y a une façon de ne pas utiliser ManyToManyField je suis ouvert à cela aussi ..

une idée?

Répondre

0

Peut-être que cette solution peut vous aider!

class Parent(models.Model): 
     title = models.CharField(max_length=250) 

class Child(models.Model): 
    parent = models.ForeignKey(Parent) 
    title = models.CharField(max_length=250) 

class Family(models.Model): 
    title = models.CharField(max_length=250) 
    parent = models.ForeignKey(Parent) 

    filtered_childs = Child.objects.all().filter(parent=self.parent) 
    filtered_childs = list((k, v) for k, v in enumerate(filtered_childs)) 
    child = models.CharField(choices=filtered_childs, max_length=20) 
+0

ne fonctionnait pas. je suis supposé ajouter quelque chose au code? – DjangoGuy