django-Abschluss ist eine Django-app, die Autovervollständigung bietet.
Unterstützt folgende Backends:
& Nbsp; * solr
& Nbsp; * postgres
& Nbsp; * redis (ziemlich experimentell)
Nutzung folgt typischen django Registrierung y-Muster:
von django.db Importmodelle
vom Abschluss import Website
Klasse Blog (models.Model):
& Nbsp; title = models.CharField (max_length = 255)
& Nbsp; pub_date = models.DateTimeField ()
& Nbsp; content = models.TextField ()
& Nbsp; veröffentlicht = models.BooleanField (default = true)
& Nbsp; def get_absolute_url (self):
& Nbsp; Rück reverse ('blog_detail', args = [self.pk])
Klasse BlogProvider (AutocompleteProvider):
& Nbsp; def get_title (self, obj):
& Nbsp; zurück obj.title
& Nbsp; def get_pub_date (self, obj):
& Nbsp; datetime.datetime zurück (2010, 1, 1)
& Nbsp; def get_data (self, obj):
& Nbsp; Rück {'stored_title': obj.title, 'url': obj.get_absolute_url ()}
& Nbsp; def get_queryset (self):
& Nbsp; Rück self.model._default_manager.filter (veröffentlicht = True)
site.register (Blog, BlogProvider)
Die Blog-Modell ist nun bereit für Autocomplete, aber die Objekte müssen gespeichert werden, bevor sie zurückgegeben werden können:
>>> Vom Abschluss import Website
>>> Site.store_providers ()
>>> Site.suggest ('tes')
[
& Nbsp; {u'stored_title ': u'testing python', u'url ': u' / blogs / 1 / "},
& Nbsp; {u'stored_title ': u'testing Python-Code', u'url ': u' / blogs / 3 / '},
& Nbsp; {u'stored_title ': u'web Test python', u'url ': u' / blogs / 2 / "},
& Nbsp; {u'stored_title ': u'unit Tests mit python', u'url ': u' / blogs / 4 / '},
]
>>> Site.suggest ('Prüfung')
[
& Nbsp; {u'stored_title ': u'testing python', u'url ': u' / blogs / 1 / "},
& Nbsp; {u'stored_title ': u'testing Python-Code', u'url ': u' / blogs / 3 / '},
& Nbsp; {u'stored_title ': u'web Test python', u'url ': u' / blogs / 2 / "},
]
Objekte können hinzugefügt oder entfernt werden zu jeder Zeit aus dem Index:
>>> Site.store_object (some_blog_instance)
>>> Site.remove_object (some_other_obj)
Konfigurieren
Die AUTOCOMPLETE_BACKEND Einstellung können Sie festlegen, welches Modul für Autovervollständigen zu verwenden. Die Optionen sind:
& Nbsp; * completion.backends.postgres_backend.PostgresAutocomplete
& Nbsp; * completion.backends.redis_backend.RedisAutocomplete
& Nbsp; * completion.backends.solr_backend.SolrAutocomplete
Konfigurieren Redis
Stellen Sie sicher, dass Sie Redis und redis-py installiert ist.
In etwas wie das folgende, um die Einstellungen-Datei, in der die Verbindungszeichenfolge ist
AUTOCOMPLETE_REDIS_CONNECTION = 'localhost: 6379: 0'
Konfigurieren von Solr
Stellen Sie sicher, dass Sie Solr und pysolr installiert.
So etwas wie dies in Ihre Einstellungsdatei:
AUTOCOMPLETE_SOLR_CONNECTION = 'http: // localhost: 8080 / Solr / Autocomplete-core /'
Außerdem, wenn Sie am Ende mit Solr (was ich empfehlen würde!), Müssen Sie sicherstellen, dass Sie die richtigen Felddefinitionen in Ihrem solr Schema haben. Ein Beispielschema kann für Sie automatisch erzeugt werden, indem Sie:
django-admin.py autocomplete_schema
Dies wird eine Datei mit dem Namen schema.xml im aktuellen Verzeichnis löschen.
Installation:
python setup.py install
ODER
setzen die Fertigstellung Ordner auf Ihrem python-path
Anforderungen :
- Python
Kommentare nicht gefunden