| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- ============
 
- Autocomplete
 
- ============
 
- By default Django JET renders all possible choices for select inputs. This behavior may be unwanted if number of
 
- available options is rather big. In this case Django JET allows you to load these options dynamically through AJAX.
 
- Configuration
 
- -------------
 
- In order to achieve this functionality all you have to do is:
 
- -
 
-     Specify which model fields should be searchable by AJAX queries. Add this static method which must return
 
-     a ``tuple`` or ``list`` of fields you want to be searchable with AJAX:
 
- .. code:: python
 
-     @staticmethod
 
-     def autocomplete_search_fields():
 
-         return 'field1', 'field2'
 
-     # for single field
 
-     @staticmethod
 
-     def autocomplete_search_fields():
 
-         return 'field1',
 
- Example from Django JET demo site:
 
- .. code:: python
 
-     class Address(models.Model):
 
-         name = models.CharField(_('name'), max_length=255)
 
-         city = models.ForeignKey(City, verbose_name=_('city'), related_name='addresses')
 
-         zip = models.IntegerField(_('zip/postal code'))
 
-         class Meta:
 
-             verbose_name = _('address')
 
-             verbose_name_plural = _('addresses')
 
-             unique_together = ('name', 'city')
 
-         def __str__(self):
 
-             return self.name
 
-         @staticmethod
 
-         def autocomplete_search_fields():
 
-             return 'name', 'city__name'
 
- - Use custom AJAX filter class ``jet.filters.RelatedFieldAjaxListFilter`` if you have any foreign key list filters:
 
- .. code:: python
 
-     from jet.filters import RelatedFieldAjaxListFilter
 
-     class PersonAdmin(admin.ModelAdmin):
 
-         list_filter = (
 
-             ...
 
-             ('address', RelatedFieldAjaxListFilter),
 
-         )
 
- - Now all your admin select boxes will perform AJAX queries to load available options while you type.
 
- .. note::
 
-     This work for both ForeignKey and ManyToManyField fields.
 
- Disabling Autocomplete For Form Fields
 
- --------------------------------------
 
- Autocomplete is nice, but sometimes you don't want this behaviour (e.x. because you want to limit the provided
 
- queryset for a particular widget). In this case you can disable autocompletion this way:
 
-     .. code:: python
 
-         class YourForm(forms.ModelForm):
 
-             def __init__(self, *args, **kwargs):
 
-                 super(YourForm, self).__init__(*args, **kwargs)
 
-                 if SOME_CASE(self.instance):
 
-                     self.fields['FIELD_NAME'].autocomplete = False
 
-                     self.fields['FIELD_NAME'].queryset = Model.queryset.some_filter()
 
 
  |