【发布时间】:2016-11-14 20:03:25
【问题描述】:
我正在关注 DAL documentation 向我的表单添加过滤字段,但转发无法将一个字段连接到另一个:
Forms.py
class PurchaseForm(forms.ModelForm):
commodity = forms.ModelChoiceField(
queryset=Commodity.objects.all(),
widget=autocomplete.ModelSelect2(url='commodity-autocomplete'),
required=False,
)
class Meta:
model = Purchase
fields = ["variety"]
widgets = {
'variety': autocomplete.ModelSelect2(url='variety-autocomplete', forward=['commodity'],
}
Views.py
class VarietyAutocompleteView(autocomplete.Select2QuerySetView):
def get_queryset(self):
qs = Variety.objects.all()
commodity = self.forwarded.get('commodity', None)
print("Commodity:" + str(commodity))
if commodity:
qs = qs.filter(commodity=commodity)
if self.q:
qs = qs.filter(name__istartswith=self.q)
return qs
我希望通过它们与 Commodity 对象的外键关系过滤我的 Variety 选项。两个自动完成字段都可以正常工作,但是来自commodity 字段的选择不会被转发到VarietyAutocompleteView(我的打印命令打印Commodity:None)。这可能是因为我正在传递一个外键对象吗?还是我以某种方式设置不正确?
【问题讨论】:
-
我也遇到了类似的问题。你最后是怎么解决的?
-
我从 DAL 切换到 bootstrap-combobox。我将在答案中发布我的结果代码。
-
啊.. 非常感谢!..
标签: django django-autocomplete-light