【问题标题】:django-autocomplete-light with User - choices should be a querysetdjango-autocomplete-light with User - 选择应该是一个查询集
【发布时间】:2014-09-29 22:01:16
【问题描述】:

我似乎无法使 django-autocomplete-light 与 django contrib 用户模型一起工作。总是得到异常'选择应该是一个查询集'

这是我的自动完成类(在 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}} 进行渲染时,它会抛出异常:choices 应该是一个查询集: 堆栈:

/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-autocomplete-light 可以与 autocompleteListBase 配合使用,例如:

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

所以 urls.py 包含注册表,已注册 url 并正在加载 javascript。 遵循这些文档: http://django-autocomplete-light.readthedocs.org/en/latest/index.html#tutorial

任何指针?

谢谢!

【问题讨论】:

    标签: django django-autocomplete-light


    【解决方案1】:

    嗯,明白了...文档没有提及,但需要在自动完成类上明确定义选择。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 2013-05-14
      相关资源
      最近更新 更多