साथ मैं Django के बाकी फ्रेमवर्क में आ ModelViewSet
है कि मुझे एक पोस्ट करते हैं और निम्नलिखित पते के माध्यम से प्राप्त करने की क्षमता देता:अधिभावी Django बाकी ViewSet कस्टम पोस्ट विधि और मॉडल
api/v1/users
ये उपयोगकर्ता आ है एक टिप्पणियाँ तालिका के संबंध रिवर्स और मैं यूआरएल के माध्यम से इन टिप्पणियां उपयोग करने में सक्षम होना चाहते हैं:
api/v1/users/<username>/comments
मैं एक सेट करके ऐसा करने में सक्षम था कस्टम @detail_route
queryset
और serializer_class
ओवरराइड करके यह केवल GET अनुरोधों के लिए काम करता है।
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserFlat
lookup_field = 'username'
@detail_route(methods=['post','get'])
def comment(self, request, **kwargs):
user = self.get_object()
self.queryset = Comment.objects.filter(recipient=user.id)
self.serializer_class = CommentFlat
serializer = CommentFlat(instance=self.queryset, many=True)
return Response(serializer.data)
नई टिप्पणी लेना चाहिए: यदि मैं बाकी फ्रेमवर्क के व्यवस्थापक अनुभाग के माध्यम से एक नई टिप्पणी पोस्ट करने का प्रयास है, मैं कहा " 'ListSerializer' वस्तु iterable नहीं है"
यहाँ मेरी कोड है एक त्रुटि नोटिस प्राप्त निम्नलिखित मानकों:
comment.author, comment.message, comment.recipient
मैं व्यवस्थापक पैनल में उन सभी क्षेत्रों में प्रवेश करने और एक पोस्ट अनुरोध बनाने का प्रयास है, लेकिन यह विफल रहता है सकते हैं। आदर्श रूप में, मैं केवल comment.message और comment.author और comment.recipient क्षेत्र user.id जो यूआरएल में प्राप्त किया जाता है के साथ autopopulated किया जाना चाहिए को भरने के लिए होना चाहिए api/v1/users/<username>/comments
क्या किसी को पता है कि क्यों मेरी पोस्ट अनुरोध नहीं है पूरा करना और मैं उस क्षेत्र को कैसे स्वत: भर सकता हूं?