2016-11-29 109 views
0

比方說,我有這些類:限制選擇到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) 

這段代碼的問題家庭的形式顯示了所有的「孩子」的對象。

只有當孩子與家庭形式中的「父母」對象相關時,我需要顯示「孩子」對象。

如果有一種方法不使用manytomanyfield我打開那太..

什麼想法?

回答

0

也許這個解決方案可以幫助!

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

沒有工作。我想添加一些代碼? – DjangoGuy