0
我有一個產品模型,其中一個模型是「my_test_fn」。這是從我的序列化程序中調用的。我的要求是,我想根據通過url的過濾器進行一些計算。我如何獲取模型屬性中的url參數值?django rest框架:獲取模型屬性中的url參數值
我想在my_test_fn
models.py
class Product(AbstractProduct):
product_id = models.UUIDField(default=uuid.uuid4, editable=False)
##more fields to go
def my_test_fn(self):
filters = self.request.query_params.get('filters', None)
return {"key":"value"}
serializer.py
class MySerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ('id','product_id','sku', 'title', 'my_test_fn',)
views.py
class ProductDetailConfiguration(viewsets.ViewSet):
lookup_field = 'product_id'
def retrieve(self, request, product_id=None):
queryset = Product.objects.filter(product_id=product_id)[0]
serializer = ProductConfigurationCustomSerializer(queryset, context={'request': request})
return Response(serializer.data)
API網址得到 「過濾器」 值:
http://127.0.0.1:8000/api/v1/product-configuration/2FC2AA43-07F5-DCF4-9A74-C840FDD8280A?filters=5
這不能在模型中訪問?或者我可以通過串行器將它傳遞給模型? –
您的模型知道請求沒有意義。這是通向高度耦合的代碼的道路,這很容易失敗。讓視圖或序列化程序獲取值並將其傳遞給模型,但不要將模型和請求綁定 – Linovia