我有一个类似于以下的双向外国关系
class Parent(models.Model):
name = models.CharField(max_length=255)
favoritechild = models.ForeignKey("Child", blank=True, null=True)
class Child(models.Model):
name = models.CharField(max_length=255)
myparent = models.ForeignKey(Parent)
Run Code Online (Sandbox Code Playgroud)
如何将Parent.favoritechild的选择仅限于父母本身的子女?我试过了
class Parent(models.Model):
name = models.CharField(max_length=255)
favoritechild = models.ForeignKey("Child", blank=True, null=True, limit_choices_to = {"myparent": "self"})
Run Code Online (Sandbox Code Playgroud)
但这会导致管理界面不列出任何子项.
在Django 2.0中,添加了autocomplete_fields,这很棒.
如果没有autocomplete_fields,我可以使用formfield_for_foreignkey更改ForeignKeyField的查询集.
但是将两者结合在一起并不起作用 - 看起来自动完成的选项列表是动态的,来自不同的URL,而不是来自当前的表单.
所以问题是 -
如何更改自动完成小部件中的查询集?