Django-voltooiing is 'n app wat Django outomatiese aanvulling bied.
Ondersteun die volgende back ends:
& Nbsp; * solr
& Nbsp; * postgres
& Nbsp; * redis (mooi eksperimentele)
gebruik volg tipiese Django registrasie-y patroon:
van django.db invoer modelle
van voltooiing invoer webwerf
klas Blog (models.Model):
& Nbsp; title = models.CharField (MAX_LENGTH = 255)
& Nbsp; pub_date = models.DateTimeField ()
& Nbsp; content = models.TextField ()
& Nbsp; gepubliseer = models.BooleanField (verstek = True)
& Nbsp; def get_absolute_url (self):
& Nbsp; terugkeer omgekeerde ('blog_detail, argumente = [self.pk])
klas BlogProvider (AutocompleteProvider):
& Nbsp; def get_title (self, obj):
& Nbsp; terugkeer obj.title
& Nbsp; def get_pub_date (self, obj):
& Nbsp; terugkeer datetime.datetime (2010, 1, 1)
& Nbsp; def get_data (self, obj):
& Nbsp; terugkeer {'stored_title': obj.title, 'url': obj.get_absolute_url ()}
& Nbsp; def get_queryset (self):
& Nbsp; terugkeer self.model._default_manager.filter (gepubliseer = True)
site.register (Blog, BlogProvider)
Die Blog model is nou gereed vir outomaties, maar die voorwerpe gestoor moet word voordat hulle kan teruggestuur word:
>>> Van voltooiing invoer webwerf
>>> Site.store_providers ()
>>> Site.suggest ('tes')
[
& Nbsp; {u'stored_title ': u'testing luislang, u'url': u '/ blogs / 1 /'},
& Nbsp; {u'stored_title ': u'testing python kode ", u'url': u '/ blogs / 3 /'},
& Nbsp; {u'stored_title ': u'web toets luislang, u'url': u '/ blogs / 2 /'},
& Nbsp; {u'stored_title ': u'unit toetse met python, u'url': u '/ blogs / 4 /'},
]
>>> Site.suggest ('toets')
[
& Nbsp; {u'stored_title ': u'testing luislang, u'url': u '/ blogs / 1 /'},
& Nbsp; {u'stored_title ': u'testing python kode ", u'url': u '/ blogs / 3 /'},
& Nbsp; {u'stored_title ': u'web toets luislang, u'url': u '/ blogs / 2 /'},
]
Voorwerpe kan bygevoeg word of verwyder word op enige tyd van die indeks:
>>> Site.store_object (some_blog_instance)
>>> Site.remove_object (some_other_obj)
instel
Die instelling AUTOCOMPLETE_BACKEND kan u spesifiseer wat backend te gebruik vir outovoltooiing. Die opsies is:
& Nbsp; * completion.backends.postgres_backend.PostgresAutocomplete
& Nbsp; * completion.backends.redis_backend.RedisAutocomplete
& Nbsp; * completion.backends.solr_backend.SolrAutocomplete
Redis instel
Maak seker dat jy Redis en redis-py geïnstalleer.
Iets by te voeg soos die volgende om jou stellings lêer, waar die verband string is
AUTOCOMPLETE_REDIS_CONNECTION = 'localhost: 6379: 0'
Instel Solr
Maak seker dat jy Solr en pysolr geïnstalleer.
Iets soos hierdie by jou instellings lêer:
AUTOCOMPLETE_SOLR_CONNECTION = 'http: // localhost: 8080 / solr / outovoltooiing-core /'
Verder, as jy uiteindelik met behulp van Solr (wat ek sou aanbeveel!), Sal jy nodig het om te verseker dat jy die korrekte veld definisies in jou solr skema. 'N Monster skema kan outomaties gegenereer vir jou, deur die loop:
django-admin.py autocomplete_schema
Dit sal 'n lêer met die naam schema.xml val in jou huidige gids.
Installasie:
python setup.py installeer
OF
sit die gids voltooiing op jou python-pad
Vereistes :
- Python
Kommentaar nie gevind