所以我按照教程说的做了一切,我已经成功注册了自动完成视图,当我转到正确的URL时,我可以看到查询集以json格式显示。但是我无法使表单小部件起作用。
如果我的表单如下:
class ProductsImportForm(ModelForm):
brand = forms.ModelChoiceField(queryset=Brands.objects.all(), label=_('Brand'))
filename = forms.FileField(label=_('Filename'))
fileType = forms.ModelChoiceField(queryset=FileType.objects.all(), label=_('File type'))
class Meta:
model = ProductsImport
fields = ['brand', 'filename']
widgets = {
'brand': autocomplete.ModelSelect2(url='brand_autocomplete')
}
我页面上的选择字段看起来与以前一样,没有任何花哨的自动填充。
现在,当我从Meta删除小部件并将其移到此处时:
brand = forms.ModelChoiceField(queryset=Brands.objects.all(), label=_('Brand'), widget = autocomplete.ModelSelect2(url='brand_autocomplete'))
我收到此错误:
Reverse for 'brand_autocomplete' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
我该如何解决?我真的需要在我的页面上有这个自动填充字段,因为我浏览了数百个条目。
答案 0 :(得分:1)
这不是DAL问题,而是Django问题。它无法反转名称为“brand_autocomplete”的网址,因为它未在Django中注册。
有关详细信息,请参阅Django's documentation on the URL Dispatcher。