में django-rest कस्टम यूआरएल मुझे django-rest-framework में ModelViewSet में एक कस्टम यूआरएल जोड़ने में कोई समस्या है। यहाँ मेरी मुख्य urls.py का एक उदाहरणएक मॉडल व्यूसेट
router = routers.DefaultRouter()
router.register(r'post', PostViewSet)
urlpatterns = patterns('',
url(r'^api/', include(router.urls)),
)
मेरे modelviewset तरह
class PostViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = Post.objects.all()
serializer_class = PostSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly,)
search_fields = ('created')
def pre_save(self, obj):
obj.user = self.request.user
#
# based on the post type this will decide which serializer to use for the data
def get_serializer_class(self):
#
# default is the Text role serializer
return PostSerializer
कि
/api/post/
की तरह एक यूआरएल मैं एक सेट दिन पाने के लिए देख रहा हूँ के लिए अच्छा काम करता है दिखाई देता है
/api/post/yyyy/mm/dd/
या मुझे चाहिए जैसे
/api/post/?year=&month=&day=
इस उत्तर ने मुझे एक टन मदद की! मुझे पता है कि यह पोस्ट करने के बाद से कुछ समय हो गया है, लेकिन क्या आपको कोई विचार है कि राउटर के साथ इन अलग-अलग बाध्य (क्या सही शब्द?) विचार पंजीकृत करना संभव है, ताकि वे ब्राउज़ करने योग्य एपीआई में देख सकें? – dkhaupt
@dhhaupt आप यहां के अनुसार रूटिंग के लिए अतिरिक्त कार्रवाइयां चिह्नित कर सकते हैं: http://www.django-rest-framework.org/api-guide/viewsets/#marking-extra-actions-for-routing - मुझे यकीन नहीं है जो आपको वही देता है जो आपको चाहिए। आखिरकार आपको ब्राउज़ करने योग्य एपीआई के लिए टेम्पलेट को ओवरराइड करने की आवश्यकता हो सकती है और आपको जो भी लिंक चाहिए उसे जोड़ना पड़ सकता है। (दृश्य स्वयं को किसी अन्य के रूप में प्रस्तुत किया जा सकता है।) –