[英]Filtering against the URL (REST framework)
我想從url中傳遞數據。 我讀了這篇,然后嘗試寫! 但我有一個錯誤:
__init__() takes 1 positional argument but 2 were given
serializer.py:
class ContactsDetailsSerializer(serializers.ModelSerializer):
class Meta:
model = Contacts
fields = ('id', 'profile_id', 'tel','email')
views.py:
class ContactsDetailsViewSet(viewsets.ViewSet):
def list(self, request ):
queryset = Contacts.objects.all()
serializer = ContactsSerializer(queryset, many=True)
return Response(serializer.data)
urls.py:
router = routers.DefaultRouter()
router.register(r'profiles', views.ProfileViewSet)
# router.register(r'users', views.UserViewSet)
router.register(r'members', views.MemberViewSet)
router.register(r'files', views.FilesViewSet)
router.register(r'contacts', views.ContactsViewSet)
router.register(r'products', views.ProductsViewSet)
router.register(r'stories', views.StoriesViewSet)
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^accounts/', include('allauth.urls')),
url(r'^', include(router.urls)),
url(r'^test', ContactsDetailsViewSet.as_view({'get': 'list'})),//here
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
]
有人可以幫忙嗎? 如何通過REST框架傳遞數據?
url('^test/(?P<profile_id>.+)$', views.ContactsDetailsViewSet),
您需要使用映射調用as_view()
。 這不是常規視圖,而是ViewSet :
url('^test/(?P<profile_id>.+)$', views.ContactsDetailsViewSet).as_view({'get': 'retrieve'})),
還要注意,您需要將profile_id
指定為lookup_url_kwarg
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.