#jquery #django #autocomplete
#jquery #django #автозаполнение
Вопрос:
У меня есть форма, в которую вводится имя. Он выполняет поиск по полю lastname и firstname в базе данных. Мне нужно автозаполнение, когда пользователи вводят имя. Мне предложили использовать jQuery по этой ссылке django jquery
Но это не работает. Я перепробовал все предложения в комментариях, ничего не работает. Мои модели
class Pitable(models.Model):
pid = models.TextField(db_column='PID', primary_key=True) # Field name made lowercase.
lname = models.TextField(blank=True, null=True)
fname = models.TextField(blank=True, null=True)
locs = models.TextField(blank=True, null=True)
doclist = models.TextField(db_column='PMIDlist', blank=True, null=True) # Field name made lowercase.
class Meta:
managed = False
db_table = 'PItable'
Мои взгляды:
import json
def get_people(request):
if request.is_ajax():
q = request.GET.get('term', '')
persons = Pitable.objects.filter(lname__icontains = q )[:20]
results = []
for person in persons:
person_json = {}
person_json['id'] = person.pid
person_json['label'] = person.lname
person_json['value'] = person.lname
results.append(person_json)
data = json.dumps(results)
#data = json.dumps(list(Pitable.objects.filter(lname__icontains=q).values('lname')))
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, mimetype)
url-адреса:
url(r'^api/get_people/', views.get_people, name='get_people'),
HTML:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.18/themes/base/jquery-ui.css" type="text/css" media="all" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript">
</script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<script>
$(function() {
$("#names").autocomplete({
source: "/api/get_people/",
minLength: 2,
});
});
</script>
.......
<div class="ui-widget">
<label for="names">Drugs: </label>
<input id="names">
</div>
Сторона runserver сообщает
Not Found: /api/get_people/
[21/Oct/2016 16:36:05] "GET /api/get_people/?term=ra HTTP/1.1" 404 2065
Спасибо за вашу помощь
Комментарии:
1.Прежде всего, пожалуйста, завершите шаблон регулярных выражений с
$
url(r'^api/get_people/$', views.get_people, name='get_people'),
2. Пробовал. Это все еще не работает. Та же сторона runserver «Не найдена ….»
3. как выглядит ваш корневой URL conf?
4.
from django.conf.urls import url
from . import views
app_name = 'chinook'
urlpatterns = [.....]
5. Кто-нибудь может мне помочь? Пожалуйста!!!