2014-09-29 78 views
0

我似乎无法使用django-contrib用户模型进行django-autocomplete-light工作。总是例外 '的选择应该是一个查询集'django-autocomplete-light与用户 - 选择应该是一个查询集

这是(在autocomplete_ligh_registry.py定义)我的自动完成类:

import autocomplete_light 
from django.contrib.auth.models import User 
class UserAutocomplete(autocomplete_light.AutocompleteModelBase): 
    search_fields = ['first_name'] 
    model = User 
autocomplete_light.register(UserAutocomplete) 

我的形式(forms.py):

class TransactionForm(forms.Form): 
    mymodel = forms.ModelChoiceField( required=True, 
             queryset=User.objects.all() , 
            widget=autocomplete_light.ChoiceWidget('UserAutocomplete')) 

当尝试使用{{form}}进行渲染时,它会抛出一个异常:选择应该是查询集: 堆栈:

/home/prj/docs/projectos/.../src/autocomplete-light/autocomplete_light/widgets.py in render 
     choices = autocomplete.choices_for_values() ... 
▶ Local vars 
/home/prj/docs/projectos/.../src/autocomplete-light/autocomplete_light/autocomplete/model.py in choices_for_values 
     assert self.choices is not None, 'choices should be a queryset' 

这是在开发中运行的django 1.6。我有用户创建。 Django的自动补光工程确定与autocompleteListBase,例如:

class OsAutocomplete(autocomplete_light.AutocompleteListBase): 
    choices = ['Linux', 'BSD', 'Minix'] 
autocomplete_light.register(OsAutocomplete) 

所以urls.py都包括注册表,网址,注册和JavaScript被加载。 以下这些文档: http://django-autocomplete-light.readthedocs.org/en/latest/index.html#tutorial

任何指针?

谢谢!

回答

1

嗯,知道了......文档没有提到,但它需要在自动完成类中明确定义的选择。

class UserAutocomplete(autocomplete_light.AutocompleteModelBase): 
    search_fields = ['email'] 
    choices = User.objects.all() 
    model = User 
autocomplete_light.register(UserAutocomplete)