django-rest-framework'te bir ModelViewSet'e özel bir URL eklerken sorun yaşıyorum. İşteModelViewSet'te django-rest özel url
router = routers.DefaultRouter()
router.register(r'post', PostViewSet)
urlpatterns = patterns('',
url(r'^api/', include(router.urls)),
)
Benim modelviewset bir dizi gün almak için arıyorum
/api/post/
gibi bir url için çok çalışır
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
benziyor benim ana urls.py bir örnek ya da yapmalı mıyım?
post_list = PostViewSet.as_view({'get': 'list'})
Sonra her zaman yaptığınız gibi, sizin tarih tabanlı arama URL'ye bu harita yıl, ay parametreleri ayarlayarak ve: sadece ayrı görünüm olarak liste yöntemini çekin
/api/post/?year=&month=&day=
Bu cevap bana yardımcı oldu! Yayınladığınızdan bu yana bir süredir biliyorum, ancak tarayıcının bu ayrı ayrı (bu doğru kelime mi?) Görünümlerini yönlendiriciyle görüntülemenin mümkün olup olmadığına dair herhangi bir fikriniz var mı? – dkhaupt
@dkhaupt Yönlendirmeye göre ekstra eylemleri şu şekilde işaretleyebilirsiniz: http://www.django-rest-framework.org/api-guide/viewsets/#marking-extra-actions-for-routing - Emin değilim size ihtiyacınız olanı verir. Sonuçta, göz atılabilir API için şablonu geçersiz kılmanız ve ihtiyacınız olan bağlantıyı eklemeniz gerekebilir. (Görünümün kendisi diğerleriyle olduğu gibi işlenebilir.) –