का उपयोग करके प्रेषण विधि को स्थानांतरित करने के लिए सत्यापन अनुरोध सत्यापन मैंने एक बेस एपीआई व्यू बनाया है, जो APIView
से फैला है, जहां मैं प्रतिक्रिया समय, लॉग अनुरोध, और अन्य सामान्य सामान लॉग करता हूं।DRF APIView request.data
अब, मैं उप-वर्ग दृश्यों में परिभाषित सीरिएलाइज़र का उपयोग करके अनुरोध सत्यापन भी जोड़ना चाहता हूं। मैंने सोचा कि उपयुक्त स्थान dispatch()
विधि में रखना है। लेकिन इससे पहले कि मैं API.dispatch()
विधि को कॉल करता हूं, request.data
तैयार नहीं है। तो, यह काम नहीं करेगा। क्या कोई मुझे सही दिशा में मदद कर सकता है कि एक स्थान पर सत्यापन कैसे स्थानांतरित किया जाए?
यहाँ वर्ग संरचना है:
class BaseView(APIView):
validation_serializer = None
def dispatch(self, request, *args, **kwargs):
# Some code here
# How to use `validation_serializer` here, to validate request data?
# `request.data` is not available here.
response = super(BaseView, self).dispatch(request, *args, **kwargs)
# Some code here
return response
class MyView(BaseView):
validation_serializer = ViewValidationSerializer
def post(self, request, *args, **kwargs):
pass
मैंने सोचा था कि एक और दृष्टिकोण post()
विधि के शीर्ष पर उपयोग के डेकोरेटर हो सकता है। लेकिन अगर परियोजना में सजावट करने वालों की तुलना में केवल क्लीनर तरीका था?
नोट: यह यहां प्रश्न के समान है: Django - DRF - dispatch method flow। लेकिन सुझाव के मुताबिक, मैं डीआरएफ स्रोत कोड से पूरी dispatch
विधि की प्रतिलिपि बनाना नहीं चाहता हूं।
दिलचस्प लग रहा है। लेकिन यह अनुरोध विवरण लॉगिंग के लिए है। मैं चाहता हूं कि सत्यापन की संभावना है। –