django-completamento è un app Django che offre il completamento automatico.
Supporta i seguenti backend:
& Nbsp; * Solr
& Nbsp; * postgres
& Nbsp; * Redis (piuttosto sperimentale)
utilizzo segue tipico modello django registrazione-y:
dai modelli di importazione django.db
dal sito importazione completamento
Classe Blog (models.Model):
& Nbsp; title = models.CharField (max_length = 255)
& Nbsp; pub_date = models.DateTimeField ()
& Nbsp; content = models.TextField ()
& Nbsp; pubblicato = models.BooleanField (default = true)
& Nbsp; def get_absolute_url (self):
& Nbsp; inverso ritorno ('blog_detail', args = [self.pk])
Classe BlogProvider (AutocompleteProvider):
& Nbsp; def get_title (self, obj):
& Nbsp; ritorno obj.title
& Nbsp; def get_pub_date (self, obj):
& Nbsp; tornare datetime.datetime (2010, 1, 1)
& Nbsp; def get_data (self, obj):
& Nbsp; ritorno {'stored_title': obj.title, 'url': obj.get_absolute_url ()}
& Nbsp; def get_queryset (self):
& Nbsp; ritorno self.model._default_manager.filter (pubblicato = True)
site.register (Blog, BlogProvider)
Il modello di blog è ora pronto per il completamento automatico, ma gli oggetti devono essere immagazzinati prima di poter essere restituiti:
>>> Dal sito importazione completamento
>>> site.store_providers ()
>>> site.suggest ("tes ')
[
& Nbsp; {u'stored_title ': u'testing python', u'url ': u' / blog / 1 / '},
& Nbsp; {u'stored_title ': u'testing codice Python', u'url ': u' / blog / 3 / '},
& Nbsp; {u'stored_title ': u'web testing python', u'url ': u' / blog / 2 / '},
& Nbsp; {u'stored_title ': test u'unit con pitone ", u'url': u '/ blog / 4 /'},
]
>>> Site.suggest ('test')
[
& Nbsp; {u'stored_title ': u'testing python', u'url ': u' / blog / 1 / '},
& Nbsp; {u'stored_title ': u'testing codice Python', u'url ': u' / blog / 3 / '},
& Nbsp; {u'stored_title ': u'web testing python', u'url ': u' / blog / 2 / '},
]
Gli oggetti possono essere aggiunti o rimossi in qualsiasi momento l'indice:
>>> Site.store_object (some_blog_instance)
>>> Site.remove_object (some_other_obj)
Configurazione
L'impostazione AUTOCOMPLETE_BACKEND consente di specificare quale backend usare per autocomplete. Le opzioni sono:
& Nbsp; * completion.backends.postgres_backend.PostgresAutocomplete
& Nbsp; * completion.backends.redis_backend.RedisAutocomplete
& Nbsp; * completion.backends.solr_backend.SolrAutocomplete
Configurazione Redis
Assicurarsi di avere Redis e Redis-py installato.
Aggiungere qualcosa come il seguente per il file delle impostazioni, dove la stringa di connessione è
AUTOCOMPLETE_REDIS_CONNECTION = 'localhost: 6379: 0'
Configurazione Solr
Assicurarsi di avere Solr e pysolr installati.
Aggiungere qualcosa di simile per il file delle impostazioni:
AUTOCOMPLETE_SOLR_CONNECTION = 'http: // localhost: 8080 / solr / autocomplete-core /'
Inoltre, se si finisce per utilizzare Solr (che io consiglierei!), È necessario assicurarsi di avere le definizioni dei campi corretti nello schema Solr. Uno schema campione può essere generato automaticamente per voi, eseguendo:
autocomplete_schema django-admin.py
Questo lascerà cadere un file denominato schema.xml nella directory corrente.
Installazione:
python setup.py install
OR
inserire la cartella di completamento sul python-path
Requisiti
- Python
I commenti non trovato