我有一个ManyToManyField
的模型。此字段具有limit_choices_to
属性,该属性设置为可调用。我的问题是,在我的视图中,每次表单被验证/实例化时,此可调用都不会被称为。在代码中进行更改后,它只被调用一次。 Django说:
如果一个callable用于limit_choices_to,它将被调用 every 实例化新表格的时间。它也可以在模型时调用 验证,例如管理命令或管理员。该 admin构造查询集以在各种边缘验证其表单输入 多次出现这种情况,因此有可能是您的可调用者 多次调用。
为什么它不起作用的任何想法?
我的代码:
def limit_name_choices():
if Name.objects.count():
return {"pk__gt": Name.objects.last().pk}
else:
return {}
class Robject(models.Model):
project = models.ForeignKey(to=Project, null=True, blank=True)
names = models.ManyToManyField(
"Name",
related_name="robject_names",
limit_choices_to= limit_name_choices,
blank=True
)
[...]
解决:
错误已在1.11.3版本中修复。