Преобразование списка в Django Queryset
Здесь я пытаюсь найти другой способ. Мои продукты будут отображаться двумя способами, если пользователь передает местоположение, то сначала берется местоположение, а затем обычно делаю свой фильтр, используя django-filters. Фильтр работает нормально, если только у меня нет проблемы с тем, что у объекта list нет атрибута model.
Я пытаюсь упростить свою проблему. У меня многопрофильная электронная коммерция, и теперь пользователь хочет видеть товары близких поставщиков, а затем продвигать фильтрацию.
все будет хорошо, если я смогу преобразовать список в queryset.
вот мой views.py
@api_view(['GET'])
def getProducts(request):
nearby_locations = get_locations_nearby_coords(23.7106, 90.4349, 5)
if(nearby_locations.count() > 0):
products = []
for i in nearby_locations:
print(i.name)
products.extend(list(Product.objects.all().filter(user__id=i.id)))
filterset = ProductFilter(request.GET, queryset=products)
if filterset.is_valid():
products = filterset.qs
else:
products = Product.objects.all()
filterset = ProductFilter(request.GET, queryset=products)
if filterset.is_valid():
products = filterset.qs
page = request.query_params.get('page')
paginator = Paginator(products, 10)
try:
products = paginator.page(page)
except PageNotAnInteger:
products = paginator.page(1)
except EmptyPage:
products = paginator.page(paginator.num_pages)
if page == None:
page = 1
print(products)
page = int(page)
serializer = ProductSerializer(products, many=True)
return Response({'products': serializer.data, 'page': page, 'pages': paginator.num_pages})
В моем первом случае, если у меня есть список продуктов, и затем я передаю этот список как queryset, потому что мне нужно передать queryset здесь, и я хочу передать этот список как queryset или сделать новый queryset из этого списка. У меня есть все значения, хранящиеся в моем списке, как queryset.
for i in products:
print(i.name)
Я могу итерировать мой список и получить имя, id и другие необходимые значения. но я просто хочу передать их здесь в моем условии if.
filterset = ProductFilter(request.GET, queryset=products)