/ / Конвертиране на кодове от FBV в CBV в Django Views - django, django-class-based-views

Преобразуване на кодове от FBV в CBV в Django Views - django, django-class-based-views

В момента преобразувам въз основа на функциите си изгледи в базирани на класа изгледи. В моя шаблон получавам стойност чрез input маркер.

<input name="search_text" type="text">

След получаване на стойността, обработвам със стойността като следната във FBV.

def search(request):
search_text = request.GET.get("search_text")

search_stores = Store.objects.filter(Q(businessName__icontains=search_text) | Q(mKey__icontains=search_text))

Но сега искам да преобразувам кодовете в CBV. Как мога да направя това?

UPDATE

def search(request):
search_text = request.GET.get("search_text")
sorter = request.GET.get("sorter")

if not sorter:
sorter = "popularity"

if search_text:
search_stores = Store.objects.filter(Q(businessName__icontains=search_text) | Q(mKey__icontains=search_text))
if sorter == "businessName":
search_stores = search_stores.order_by(sorter)
else:
search_stores = search_stores.order_by(sorter).reverse()
else:
search_stores = ""

for store in search_stores:
store.mKey = store.mKey.split(" ")

return render(request, "boutique/search.html", {
"search_stores": search_stores,
"search_text": search_text,
"sorter": sorter,
})

Отговори:

2 за отговор № 1

Ето вашето решение като използвате ListView

from django.views.generic import ListView

class SearchView(ListView):
template_name = "template.html"
model = Store

def get_queryset(self):
search_text = self.kwargs["search_text"]
object_list = self.model.objects.filter(Q(businessName__icontains=search_text) | Q(mKey__icontains=search_text))
return object_list