0

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}} でレンダリングしようとすると、例外がスローされます: 選択肢はクエリセットである必要があります: スタック:

/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

ポインタはありますか?

ありがとう!

4

1 に答える 1

1

うーん、わかりました...ドキュメントは言及していませんが、オートコンプリートクラスで明示的に定義する選択肢が必要です。

class UserAutocomplete(autocomplete_light.AutocompleteModelBase):
    search_fields = ['email']
    choices = User.objects.all()
    model = User
autocomplete_light.register(UserAutocomplete)
于 2014-09-30T21:10:56.153 に答える