В настоящее время используется Django 2.1, Python 3.6, PostgreSQL 11 и хостинг БД на Heroku.
Я хотел бы реализовать поиск пользователей в представлении устройства, которое я настроил.
Текущий макет страницы
На этой странице будут перечислены люди в нашей БД и предоставлена ссылка на детали о них. Мне бы хотелось, чтобы пользователь мог искать конкретного человека и соответственно заполнять список.
Документация Django содержит некоторые шаги для реализации этого, но не совсем ясно о плане действий.
Спасибо за любую помощь!
РЕДАКТИРОВАТЬ: Для справки в нашей базе данных будут сотни людей, и в настоящее время она размещена на Heroku.
РЕДАКТИРОВАТЬ: Models.py
class Topic(models.Model):
top_name = models.CharField(max_length=264,unique=True)
def __str__ (self):
return self.top_name
class WebPage(models.Model):
topic = models.ForeignKey('Topic',on_delete=models.PROTECT)
name = models.CharField(max_length=264,unique=True)
url = models.URLField(unique=True)
def __str__(self):
return self.name
class AccessRecord(models.Model):
name = models.ForeignKey('WebPage',on_delete=models.PROTECT)
date = models.DateField()
def __str__(self):
return str(self.date)
EDIT:
`# Поиск кода
def search(request):
keywords=''
if request.method=='POST': # form was submitted
keywords = request.POST.get("keywords", "")
all_queries = None
search_fields = ('name__name','date') # change accordingly
for keyword in keywords.split(' '):
keyword_query = None
for field in search_fields:
each_query = Q(**{field + '__icontains': keyword})
if not keyword_query:
keyword_query = each_query
else:
keyword_query = keyword_query | each_query
if not all_queries:
all_queries = keyword_query
else:
all_queries = all_queries & keyword_query
accesses = AccessRecord.objects.filter(all_queries).distinct()
context = {'accesses':accesses}
return render(request, 'proj_app/search.html', context)
else: # no data submitted
context = {}
return render(request, 'proj_app/index.html', context)`