Django:ManyToManyField.limit_choices_to

时间:2017-08-22 09:47:24

标签: python django manytomanyfield

我有一个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版本中修复。

0 个答案:

没有答案