Django रेस्ट फ्रेमवर्क में, जब आप किसी अन्य धारावाहिक में नेस्टेड होते हैं, तो आप एक धारावाहिक को कैसे फ़िल्टर करते हैं?
मेरे फ़िल्टर डीआरएफ दृश्यों में लगाए जाते हैं, लेकिन जब आप किसी अन्य धारावाहिक के अंदर से एक धारावाहिक को कॉल करते हैं, तो नेस्टेड धारावाहिक के दृश्य को कभी नहीं बुलाया जाता है, इसलिए नेस्टेड परिणाम सामने आते हैं।
मैंने ओरिजिनल व्यूसेट पर एक फ़िल्टर जोड़ने की कोशिश की है, लेकिन यह नेस्टेड परिणामों को फ़िल्टर नहीं करता है क्योंकि नेस्टेड परिणाम को एक अलग प्री-फ्रेटेड क्वेरी के रूप में कहा जाता है। (नेस्टेड धारावाहिक एक रिवर्स लुकअप है, आप देखते हैं।)
क्या नेस्टेड सीरीज़र में एक get_queryset () ओवरराइड को जोड़ना संभव है (इसे व्यूसेट से बाहर ले जाना), वहां फ़िल्टर को जोड़ना? मैंने कोशिश की है, भी, कोई भाग्य के साथ।
यह वही है जो मैंने कोशिश की, लेकिन यह भी कहा जाता प्रतीत नहीं होता है:
class QuestionnaireSerializer(serializers.ModelSerializer):
edition = EditionSerializer(read_only=True)
company = serializers.StringRelatedField(read_only=True)
class Meta:
model = Questionnaire
def get_queryset(self):
query = super(QuestionnaireSerializer, self).get_queryset(instance)
if not self.request.user.is_staff:
query = query.filter(user=self.request.user, edition__hide=False)
return query
get_queryset
एक वर्ग पर हैModelViewSet
, सीरियल पर नहीं, यही कारण है कि यह नहीं कहा जा रहा है