在windows 10中,我使用react-router-dom 5.2.0,react-redux 7.2.5,react 17.0.2,axios 0.21.4,WebStorm 2023.1.3 IDE,PyCharm Community Edition 2023.2,djangorestframework==3.14.0,Django==4.2.4和djangorestframework-simplejwt==5.3.0.
question:其实我不知道怎么把这个从GenericAPIView
继承的query
parameter传到Django's base class view that,这个错误怎么解决?
BACKEND:
考虑-product_views.py:
class SearchProduct(GenericAPIView):
serializer_class = ProductSerializer
pagination_class = CustomPagination1
def get_queryset(self, *args, **kwargs):
# the lead id
query = self.request.GET.get("query")
# this filter base on the lead id provided
lookup = Q(name__icontains=query) | Q(description__icontains=query) | Q(producttag__title__icontains=query)
products = Product.objects.filter(lookup).distinct()
return products
def get(self, request):
page = self.paginate_queryset(self.get_queryset())
if page is not None:
serializer = self.get_serializer(page, many=True)
result = self.get_paginated_response(serializer.data)
data = result.data # pagination data
else:
serializer = self.get_serializer(queryset, many=True)
data = serializer.data
payload = {
'return_code': '0000',
'return_message': 'Success',
'data': data
}
return Response(data , status=status.HTTP_200_OK)
考虑- product_urls.py:
path('search_product/<str:query>/' , views.SearchProduct.as_view() , name="search_product"),
FRONTEND:
考虑-ProductAction.py:
export const productsSearchAction = (query , pageNumber) => async (dispatch , getState) => {
try {
dispatch({type: PRODUCTS_SEARCH_REQUEST});
const {data} = await axios.get(`http://127.0.0.1:8000/api/v1/products/search_product/${query}/?page=${pageNumber}`);
dispatch({type: PRODUCTS_SEARCH_SUCCESS , payload: data});
localStorage.setItem("productsSearch" , JSON.stringify(data));
} catch (error) {
dispatch({ // PRODUCTS SEARCH FAILED
type: PRODUCTS_SEARCH_FAILED,
payload: error.response && error.response.data.detail ? error.response.data.detail : error.message,
});
}
}
我认为答案很简单,如果你是Django和Django REST框架的专家,请回复我,这样这个错误就可以解决.
my error screen: