gpt4 book ai didi

python - 如何在 limit_choices_to (Django) 中获取实体实例?

转载 作者:行者123 更新时间:2023-11-28 22:33:47 34 4
gpt4 key购买 nike

例如:

class Foo(models.Model):
bar = models.OneToOneField(
'app.Bar',
limit_choices_to=Q(type=1) & Q(foo=None) | Q(foo=instance)
)


class Bar(models.Model):
TYPE_CHOICE = (
(0, 'hello'),
(1, 'world')
)
type = models.SmallIntegerField(
choices=TYPE_CHOICE,
default=0
)

我只想在 Django 管理中显示这些具有 type = 1 的栏, 与 Foo 没有关系,并显示已编辑实体的链接栏(如果是)。

当然,我们可以通过覆盖 formfield_for_foreignkey 来实现admin.ModelAdmin的方法| , 但我们想通过 limit_choices_to 做到这一点.

如何获取已编辑实体的实例?

最佳答案

如果您将可调用对象传递给 limit_choices_to,则该可调用对象没有对当前实例的引用。因此,您也无法根据当前实例进行过滤。

还有其他几种方法可以实现您想要的,例如覆盖您提到的 formfield_for_foreignkey(),或者在表单的 __init__() 方法中覆盖 formfield 的查询集. limit_choices_to 不是其中之一。

关于python - 如何在 limit_choices_to (Django) 中获取实体实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39593577/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com