gpt4 book ai didi

Django 管理,过滤内联表单集的对象

转载 作者:行者123 更新时间:2023-12-02 23:00:26 28 4
gpt4 key购买 nike

我有一个内联表单集,我想排除一些模型对象在表单集中显示。

例如。模型 B 具有模型 A 的外键,因此它是 1:n(A 对象有许多 B 对象)关系。现在在 A 管理编辑页面上,我已经获得了 B 的内联。我想知道是否可以在渲染内联表单集之前以某种方式过滤 B 对象列表,因此并非所有与 A 相关的 B 对象都会进入表单集。

最佳答案

回答自己的问题可能看起来有点奇怪,但我找到了另一个解决方案;)

向表单集提供自定义查询集时出现问题,在内联表单集的情况下没有 Hook 。因此,我对 BaseInlineFormSet 进行了子类化并重写了 get_queryset 方法。然后我只需在 InlineModelAdmin 中提供此表单集即可完成。

示例:

class MyFormSet(BaseInlineFormSet):
def get_queryset(self):
if not hasattr(self, '_queryset'):
qs = super(MyFormSet, self).get_queryset().filter(main=False)
self._queryset = qs
return self._queryset

和管理类:

class MyInline(admin.TabularInline):
model = m.MyModel
formset = MyFormSet
...

关于Django 管理,过滤内联表单集的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101979/

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