виджет django autocomplete_light по умолчанию вместо виджета автозаполнения

Я хочу создать простую форму с простым текстовым полем ввода, которое использует автозаполнение, чтобы помочь пользователям заполнить поле ввода.

Я пытаюсь заставить django_autocomplete_light работать. Я внимательно следовал инструкциям, но визуализированная форма по-прежнему имеет простое выпадающее меню (выбор) вместо текстовое поле автозаполнения.. (со ВСЕМИ городами, обработка которых занимает много времени)

Я сделал все необходимые записи в settings.py и urls.py, и все javascripts загружаются.

Забавная вещь: я уже заставил это работать - вместо раскрывающегося меню было текстовое поле с функцией автозаполнения - затем я попробовал что-то еще и когда я снова попробовал прежнее рабочее решение, оно больше не работало. не могу найти свою ошибку :(

Это autocomplete_light_registry.py:

   import autocomplete_light

   from cities_tiny.models import City

   autocomplete_light.register(City, search_fields=('name','name_ascii'),
       autocomplete_js_attributes={'placeholder': 'city name ..'})

Это forms.py:

from django import forms
import autocomplete_light
from models import Search

class SearchForm(forms.ModelForm):
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Search)
        model = Search

Это models.py:

from django.db import models
from django.core import urlresolvers


class Search(models.Model):
    city = models.ForeignKey('cities_tiny.city', null=True, blank=True)


    def get_absolute_url(self):
        return urlresolvers.reverse('non_admin:widget_update', args=(self.pk,))

Было бы хорошо, если бы это работало, но я бы предпочел ТОЛЬКО форму... Думаю, мне не нужна дополнительная модель "Поиск", потому что у меня уже есть "cities_tiny.city". ". Форма должна получать значения autocomplete из модели City.

Я также обнаружил, что не могу использовать CityAutocomplete где-то в модели, как в документации. Он всегда говорит KeyError.

Спасибо за вашу помощь.


person exception valueerror    schedule 21.07.2013    source источник


Ответы (1)


Кажется, я нашел ответ :)

Я всегда получал следующее сообщение при использовании зарегистрированных имен автозаполнения:

KeyError at /search/ 'CityAutocomplete'

localhost:8000/autocomplete/ показал мне все зарегистрированные автозаполнения, но, тем не менее, эти автозаполнения были непригодны для использования

в forms.py мне пришлось

import autocomplete_light_registry

избавиться от KeyError


как я упоминал ранее, я каким-то образом заставил его работать, но я совершенно уверен, что не импортировал autocomplete_light_registry, поэтому, если у кого-то есть подсказка, где лежит «настоящая» ошибка ... большое спасибо

person exception valueerror    schedule 24.07.2013