Here is my serializer.py file
class StoreProductSerializer(serializers.ModelSerializer):
product = ProductSerializer(read_only=True)
product_id = serializers.PrimaryKeyRelatedField(
queryset=Product.objects.all(),
source='product',
write_only=True
)
store = serializers.StringRelatedField()
class Meta:
model = StoreProduct
fields = ['id', 'price', 'is_available', 'upsell',
'product', 'product_id', 'store']
def validate(self, attrs):
product = attrs['product']
store_id=self.context['request'].query_params.get('id')
if StoreProduct.objects.filter(store_id=store_id,product_id=product).exists():
rs = serializers.ValidationError('Product Already Exist')
raise rs
return attrs
Here is a portion of my views.py
class StoreProductView(viewsets.ModelViewSet):
serializer_class = StoreProductSerializer
permission_classes = [OnlyOwner,]
def get_queryset(self):
id = str(self.request.query_params.get('id'))
cartitems = CartProduct.objects.filter(
Q(cart_id=self.request.user.id) & ~Q(sp_id__store_id=id)
)
cartitems._raw_delete(cartitems.db)
return StoreProduct.objects.filter(store_id=id).select_related('product', 'store')
Now the issue is that I don't want this line
if StoreProduct.objects.filter(store_id=store_id,product_id=product).exists():
instead i want to check the query set but i dont know how to access the query set inside serializer file
I tried adding query set in context dictionary but somehow I don't know it didn't worked