django-fullføring er en Django app som tilbyr autofullføring.
Støtter følgende backends:
& Nbsp; * Solr
& Nbsp; * postgres
& Nbsp; * Redis (ganske eksperimentelt)
bruk følger typisk django registrering-y mønster:
fra django.db import modeller
fra ferdigstillelse import nettstedet
klasse Blogg (models.Model):
& Nbsp; title = models.CharField (MAX_LENGTH = 255)
& Nbsp; pub_date = models.DateTimeField ()
& Nbsp; content = models.TextField ()
& Nbsp; publisert = models.BooleanField (standard = True)
& Nbsp; def get_absolute_url (egen-):
& Nbsp; avkastning omvendt ('blog_detail', args = [self.pk])
klasse BlogProvider (AutocompleteProvider):
& Nbsp; def get_title (selv, obj):
& Nbsp; tilbake obj.title
& Nbsp; def get_pub_date (selv, obj):
& Nbsp; tilbake datetime.datetime (2010, 1, 1)
& Nbsp; def get_data (selv, obj):
& Nbsp; avkastning {'stored_title': obj.title, 'url': obj.get_absolute_url ()}
& Nbsp; def get_queryset (egen-):
& Nbsp; avkastning self.model._default_manager.filter (publisert = True)
site.register (Blogg, BlogProvider)
Bloggen modellen er nå klar for Autofullfør, men gjenstandene skal oppbevares før de kan returneres:
>>> Fra ferdigstillelse import nettstedet
>>> site.store_providers ()
>>> site.suggest ('tes')
[
& Nbsp; {u'stored_title ': u'testing python ", u'url': u '/ blogger / 1 /'},
& Nbsp; {u'stored_title ': u'testing python koden ", u'url': u '/ blogger / 3 /'},
& Nbsp; {u'stored_title ': u'web testing python ", u'url': u '/ blogger / 2 /'},
& Nbsp; {u'stored_title ': u'unit tester med python', u'url ': u' / blogger / 4 / '},
]
>>> Site.suggest ('testing')
[
& Nbsp; {u'stored_title ': u'testing python ", u'url': u '/ blogger / 1 /'},
& Nbsp; {u'stored_title ': u'testing python koden ", u'url': u '/ blogger / 3 /'},
& Nbsp; {u'stored_title ': u'web testing python ", u'url': u '/ blogger / 2 /'},
]
Objekter kan legges til eller fjernes når som helst fra indeksen:
>>> Site.store_object (some_blog_instance)
>>> Site.remove_object (some_other_obj)
Konfigurering
Den AUTOCOMPLETE_BACKEND innstillingen kan du angi hvilke backend å bruke for autofullføring. Alternativene er:
& Nbsp; * completion.backends.postgres_backend.PostgresAutocomplete
& Nbsp; * completion.backends.redis_backend.RedisAutocomplete
& Nbsp; * completion.backends.solr_backend.SolrAutocomplete
Konfigurering Redis
Sørg for at du har Redis og Redis-py installert.
Legg noe sånt til følgende i innstillingsfilen, der tilkoblingsstrengen er
AUTOCOMPLETE_REDIS_CONNECTION = 'localhost: 6379: 0'
Konfigurering Solr
Sørg for at du har Solr og pysolr installert.
Legg noe sånt som dette til din innstillingsfil:
AUTOCOMPLETE_SOLR_CONNECTION = 'http: // localhost: 8080 / Solr / autofullfør-core /'
I tillegg, hvis du ender opp med å bruke Solr (som jeg vil anbefale!), Må du sikre at du har de riktige feltdefinisjonene i din Solr skjema. En prøve skjema kan genereres automatisk for deg, ved å kjøre:
django-admin.py autocomplete_schema
Dette vil slippe en fil som heter schema.xml i din nåværende katalog.
Installasjon:
python setup.py installere
OR
sette ferdigstillelse mappe på python-banen
Krav
- Python
Kommentarer ikke funnet