django-completion ay isang Django app na nagbibigay autocompletion.
Sumusuporta sa mga sumusunod backends:
& Nbsp; * solr
& Nbsp; * postgres
& Nbsp; * Redis (medyo experimental)
sumusunod na paggamit karaniwang pattern django registration-y:
mula django.db import na mga modelo
mula sa site import pagkumpleto
klase Blog (models.Model):
& Nbsp; title = models.CharField (MAX_LENGTH = 255)
& Nbsp; pub_date = models.DateTimeField ()
& Nbsp; content = models.TextField ()
& Nbsp; na-publish = models.BooleanField (default = True)
& Nbsp; def get_absolute_url (self):
& Nbsp; return reverse ('blog_detail', args = [self.pk])
klase BlogProvider (AutocompleteProvider):
& Nbsp; def get_title (self, obj):
& Nbsp; bumalik obj.title
& Nbsp; def get_pub_date (self, obj):
& Nbsp; bumalik datetime.datetime (2010, 1, 1)
& Nbsp; def get_data (self, obj):
& Nbsp; return {'stored_title': obj.title, 'url': obj.get_absolute_url ()}
& Nbsp; def get_queryset (self):
& Nbsp; return self.model._default_manager.filter (inilathala = True)
site.register (Blog, BlogProvider)
Ang mga modelo ng Blog ay handa na para sa autocomplete ngayon, ngunit dapat na naka-imbak sa mga bagay bago sila ay nagbabalik:
>>> Mula sa site import pagkumpleto
>>> Site.store_providers ()
>>> Site.suggest ('tes')
[
& Nbsp; {u'stored_title ': u'testing python', u'url ': u' / blog / 1 / '},
& Nbsp; {u'stored_title ': u'testing python code', u'url ': u' / blog / 3 / '},
& Nbsp; {u'stored_title ': u'web testing python', u'url ': u' / blog / 2 / '},
& Nbsp; {u'stored_title ': u'unit pagsusulit sa python', u'url ': u' / blog / 4 / '},
]
>>> Site.suggest ('testing')
[
& Nbsp; {u'stored_title ': u'testing python', u'url ': u' / blog / 1 / '},
& Nbsp; {u'stored_title ': u'testing python code', u'url ': u' / blog / 3 / '},
& Nbsp; {u'stored_title ': u'web testing python', u'url ': u' / blog / 2 / '},
]
Objects maaaring idagdag o alisin anumang oras mula sa index:
>>> Site.store_object (some_blog_instance)
>>> Site.remove_object (some_other_obj)
Pagsasaayos
Pinapayagan ka ng setting AUTOCOMPLETE_BACKEND kang tukuyin kung aling backend upang gamitin para sa autocomplete. Ang mga opsyon ay:
& Nbsp; * completion.backends.postgres_backend.PostgresAutocomplete
& Nbsp; * completion.backends.redis_backend.RedisAutocomplete
& Nbsp; * completion.backends.solr_backend.SolrAutocomplete
Isinasaayos Redis
Tiyakin na mayroon kang Redis at Redis-py install.
Magdagdag ng isang bagay tulad ng mga sumusunod sa iyong mga setting ng file, kung saan ang koneksyon string ay
AUTOCOMPLETE_REDIS_CONNECTION = 'localhost: 6379: 0'
Pagsasaayos Solr
Tiyakin na mayroon kang Solr at pysolr install.
Magdagdag ng isang bagay tulad na ito sa iyong file na setting:
AUTOCOMPLETE_SOLR_CONNECTION = 'http: // localhost: 8080 / solr / autocomplete-core /'
Karagdagan pa, kung ikaw end up gamit Solr (na gusto ko inirerekumenda!), Kakailanganin mo upang matiyak na mayroon kang mga tamang kahulugan patlang sa iyong solr schema. Ang isang sample ng schema ay maaaring binuo para sa iyo awtomatikong, sa pamamagitan ng pagpapatakbo ng:
django-admin.py autocomplete_schema
Ito ay drop ang isang file na pinangalanang schema.xml sa iyong kasalukuyang direktoryo.
Pag-install:
python setup.py install
O
ilagay ang pagkumpleto folder sa iyong python-path
Kinakailangan :
- sawa
Mga Komento hindi natagpuan