gpt4 book ai didi

django - 在 Django 的 inlineformset_factory 中选择外键元素的子集

转载 作者:行者123 更新时间:2023-12-02 07:06:35 30 4
gpt4 key购买 nike

我有一个带有两个外键的模型:

class Model1(models.Model):
model_a = models.ForeignKey(ModelA)
model_b = models.ForeignKey(ModelB)
value = models.IntegerField()

然后,我创建一个内联表单集类,如下所示:

an_inline_formset = inlineformset_factory(ModelA, Model1, fk_name="model_a")

然后实例化它,如下所示:

a_formset = an_inline_formset(request.POST, instance=model_A_object)

一旦此表单集在模板/页面中呈现,就会有与 model_b 字段关联的 ChoiceField。我遇到的问题是生成的下拉菜单中的元素包含 ModelB 表中找到的所有元素。我需要根据 ModelB 中的某些标准选择其中的一个子集。同时,在实例化 inlineformset_factory 时,我需要保留对 model_A_object 实例的引用,因此,我不能只使用 this例子。有什么建议吗?

最佳答案

您需要做的是change the ModelChoiceField's queryset

最简单的方法可能是对表单集的表单进行猴子修补。您应该能够在构建表单集后立即执行此操作:

an_inline_formset.form.base_fields['model_b'].queryset = ModelB.objects.filter(whatever=True)

不是最漂亮的,但应该可以。

关于django - 在 Django 的 inlineformset_factory 中选择外键元素的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4496485/

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