hey, i wanted to get the product_id from urls insatead of filling the product field by myself(section 28).
serializer.py :
class ReviewSerializer(serializers.ModelSerializer):
class Meta:
model = Review
fields = ['id','date','name','description']
def create(self,validated_data):
product_id = self.context['product_id']
return Review.objects.create(product_id=product_id, **validated_data)
views.py :
class ReviewViewSet(ModelViewSet):
serializer_class = ReviewSerializer
def get_queryset(self):
return Review.objects.filter(product_id=self.kwargs['product_pk'])
def get_serializer_context(self):
return {'product_id' : self.kwargs['product_pk']}
urls.py:
router = routers.DefaultRouter()
router.register('products',views.ProductViewSet)
router.register('collections',views.CollectionViewSet)
products_router = routers.NestedDefaultRouter(router,'products', lookup = 'product')
products_router.register('reviews',views.ReviewViewSet, basename='product-reviews')
urlpatterns = router.urls + products_router.urls
i followed the video but i got this error : “Column ‘product_id’ cannot be null”