Простая форма поиска в django

#python #django #django-forms

#python #django #django-формы

Вопрос:

У меня есть простая модель (человек с именем и фамилией). Я создал администратора для этой модели, где я могу добавлять / редактировать / удалять объекты.

Мои вопросы:

  1. Можно ли использовать Django forms для создания простой формы (без CSS и т.д.) Для поиска объектов в БД? (Я выбираю поле и значение для поиска) Или формы Django используются только для запросов post?

  2. Как я могу добавить функциональность AJAX в форму поиска, чтобы моя страница оставалась без перезагрузки?

Честно говоря, я гуглил два часа и не нашел никакой информации.

Ответ №1:

Самый простой «поиск», который вы можете использовать, — это использовать представление для возврата ответа json. Например:

из django.http импортируйте JsonResponse

 def SearchView(View):
    def get(self, request, *args, **kwargs):
        search_query = request.GET.get('q', '')
        search_results = Game.objects.filter(title__icontains=search_query)
        return JsonResponse(search_results)
  

и тогда ваш JS был бы чем-то вроде этого:

 $.ajax({
    type: "GET",
    url: YOUR_ENDPOINT,
    data : YOUR_GET_PARAMETERS,
    success: function (response) {
         // success callback
    }, 
    error: function(response) {
        // error handling
    }
}); 
  

Примечание: Вы также можете использовать поиск по полю __search__ для получения наилучших результатов поиска.

Комментарии:

1. я голосую за то, чтобы закрыть вопросы, в которых нас просят порекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другой сторонний ресурс, не по теме для Stack Overflow, поскольку они, как правило, привлекают самоуверенные ответы и спам. Вместо этого опишите проблему и то, что было сделано до сих пор для ее решения.