将manytomanyfield的选择限制为foreginkey

时间:2016-11-29 15:35:32

标签: django foreign-keys manytomanyfield

让我们说我有这些课程:

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)

此代码的问题家庭表格显示所有" Child"对象。

我需要展示" Child"只有当Child与" Parent"相关时才对象家庭形式的物品。

如果有不使用manytomanyfield的方式,我也会对此持开放态度。

任何想法?

1 个答案:

答案 0 :(得分: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)