我正在使用 django autocomplete_light 来自动完成插入到ForeignKeyField
. 我想根据传递给__init__
方法的论点对建议应用额外的过滤。
这是我的表格
class CamenuForm(autocomplete_light.ModelForm):
class Meta:
model = Ca_dispensaries_item
autocomplete_fields = ('item',)
def __init__(self, *args, **kwargs):
self.category = kwargs.pop('category', None)
super(CamenuForm, self).__init__(*args, **kwargs)
self.fields['item'].queryset=Items.objects.filter(product_type__name=self.category)
for field_name in self.fields:
field = self.fields.get(field_name)
if field:
field.widget.attrs.update({
'placeholder': field.label,
'class': 'form-control'
})
这是注册表
autocomplete_light.register(Items, search_fields=('item_name',))
__init__
这是似乎不适用于自动完成的方法中的这一行。虽然我在这里使用了过滤器,但建议没有被过滤。
self.fields['item'].queryset=Items.objects.filter(product_type__name=self.category)