如何在 Django 中创建端点视图以获取自动完成的查询集?
How to make endpoint view in django to get queryset for autocomplete?
我正在尝试使用 jquery UI 为自动完成搜索创建查询集。我写了一个基于函数的视图,根据我的说法,它应该可以工作,但它不能正常工作。当我输入有效单词时,它会将我重定向到应该显示搜索结果的位置,但我收到错误消息
AttributeError: 'Branches' object has no attribute 'FIELD'
树枝是我的模特
class Branches(models.Model):
ifsc = models.CharField(primary_key=True, max_length=11)
bank = models.ForeignKey(Banks, models.DO_NOTHING, blank=True, null=True)
branch = models.CharField(max_length=250, blank=True, null=True)
address = models.CharField(max_length=250, blank=True, null=True)
city = models.CharField(max_length=50, blank=True, null=True)
district = models.CharField(max_length=50, blank=True, null=True)
state = models.CharField(max_length=26, blank=True, null=True)
我的views.py
def search_ifsc(request):
if request.is_ajax():
q = request.GET.get('q', '').capitalize()
search_qs = Branches.objects.filter(ifsc__startswith=q)
results = []
print(q)
for r in search_qs:
results.append(r.FIELD)
data = json.dumps(results)
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, mimetype)
urls.py
path('ajax/search/' , views.search_ifsc, name='search_view')
模板
<div class="position-absolute top-50 start-50 translate-middle">
<nav class="navbar navbar-light bg-light">
<div class="container-fluid" class="ui-widget">
<form id="search" method="POST" action="http://127.0.0.1:8000/ajax/search/">
<!-- {% csrf_token %} -->
<input type="text" class="form-control" id="q" name="q">
<button type="submit" class="btn btn-default btn-submit">Submit</button>
</form>
</div>
</nav>
</div>
<script type='text/javascript'>
$(document).ready(function(){
$("#q").autocomplete({
source: "http://127.0.0.1:8000/ajax/search/",
minLength: 2,
open: function(){
setTimeout(function () {
$('.ui-autocomplete').css('z-index', 99);
}, 0);
}
});
});
我在输入并按回车键时收到此错误
Internal Server Error: /ajax/search/
Traceback (most recent call last):
File "C:\Users\JAY SARDAR\projects\Django+Angular\Fyle-assignment\Backend\restapi\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\JAY SARDAR\projects\Django+Angular\Fyle-assignment\Backend\restapi\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\JAY SARDAR\projects\Django+Angular\Fyle-assignment\Backend\restapi\rest_api\api\views.py", line 50, in search_ifsc
results.append(r.FIELD)
AttributeError: 'Branches' object has no attribute 'FIELD'
作为初学者,我尝试了很多教程来让视图工作,但还不够。是什么导致了这个错误?请注意我的管理员,其他页面工作正常。
def search_ifsc(request):
if request.is_ajax():
q = request.GET.get('q', '').capitalize()
search_qs = Branches.objects.filter(ifsc__startswith=q)
results = []
print(q)
for r in search_qs:
results.append(r.ifsc)
data = json.dumps(results)
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, mimetype)
我正在尝试使用 jquery UI 为自动完成搜索创建查询集。我写了一个基于函数的视图,根据我的说法,它应该可以工作,但它不能正常工作。当我输入有效单词时,它会将我重定向到应该显示搜索结果的位置,但我收到错误消息
AttributeError: 'Branches' object has no attribute 'FIELD'
树枝是我的模特
class Branches(models.Model):
ifsc = models.CharField(primary_key=True, max_length=11)
bank = models.ForeignKey(Banks, models.DO_NOTHING, blank=True, null=True)
branch = models.CharField(max_length=250, blank=True, null=True)
address = models.CharField(max_length=250, blank=True, null=True)
city = models.CharField(max_length=50, blank=True, null=True)
district = models.CharField(max_length=50, blank=True, null=True)
state = models.CharField(max_length=26, blank=True, null=True)
我的views.py
def search_ifsc(request):
if request.is_ajax():
q = request.GET.get('q', '').capitalize()
search_qs = Branches.objects.filter(ifsc__startswith=q)
results = []
print(q)
for r in search_qs:
results.append(r.FIELD)
data = json.dumps(results)
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, mimetype)
urls.py
path('ajax/search/' , views.search_ifsc, name='search_view')
模板
<div class="position-absolute top-50 start-50 translate-middle">
<nav class="navbar navbar-light bg-light">
<div class="container-fluid" class="ui-widget">
<form id="search" method="POST" action="http://127.0.0.1:8000/ajax/search/">
<!-- {% csrf_token %} -->
<input type="text" class="form-control" id="q" name="q">
<button type="submit" class="btn btn-default btn-submit">Submit</button>
</form>
</div>
</nav>
</div>
<script type='text/javascript'>
$(document).ready(function(){
$("#q").autocomplete({
source: "http://127.0.0.1:8000/ajax/search/",
minLength: 2,
open: function(){
setTimeout(function () {
$('.ui-autocomplete').css('z-index', 99);
}, 0);
}
});
});
我在输入并按回车键时收到此错误
Internal Server Error: /ajax/search/
Traceback (most recent call last):
File "C:\Users\JAY SARDAR\projects\Django+Angular\Fyle-assignment\Backend\restapi\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\JAY SARDAR\projects\Django+Angular\Fyle-assignment\Backend\restapi\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\JAY SARDAR\projects\Django+Angular\Fyle-assignment\Backend\restapi\rest_api\api\views.py", line 50, in search_ifsc
results.append(r.FIELD)
AttributeError: 'Branches' object has no attribute 'FIELD'
作为初学者,我尝试了很多教程来让视图工作,但还不够。是什么导致了这个错误?请注意我的管理员,其他页面工作正常。
def search_ifsc(request):
if request.is_ajax():
q = request.GET.get('q', '').capitalize()
search_qs = Branches.objects.filter(ifsc__startswith=q)
results = []
print(q)
for r in search_qs:
results.append(r.ifsc)
data = json.dumps(results)
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, mimetype)