В настоящее время это то, что я имею в urls.py
:Джанго Rest Рамочные настройки
router = DefaultRouter()
router.register(r'users', views.UserViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^users/$', views.UserList.as_view(), name='user-list'),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
views.py
:
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
class StoreList(generics.ListAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
serializers.py
:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'name')
Я хочу сделать так, чтобы, когда я выполнить команду POST на сайт, я могу выполнять пользовательские функции, поэтому для примера е:
POST http://example.com/users/1/add {'id': 'joe', 'name' = 'joe1'}
или
POST http://example.com/users/1/add?id=joe&name=joe1
будет выполнять функцию add
, с входом id
= joe
. Таким образом, внутри функции я могу сделать что-то вроде:
if id == 'john':
return Response("NO")
else:
return Response("Yes")
Затем он вернется распечатку, например
HTTP/1.0 200 OK
Content-Encoding: gzip
Content-Language: en-us
Content-Length: 123
Content-Type: application/json
Date: Tue, 26 Jan 2016 11:11:11 GMT
Expires: Tue, 26 Jan 2016 11:22:11 GMT
Handler: product-detail
Last-Modified: Tue, 26 Jan 2016 11:11:11 GMT
{
"result": "Function success"
}
Так что мои другие функции могут использовать Dict, который был возвращен.
Кто-нибудь знает, как я могу это сделать?
Спасибо, но как бы получить входные данные для функции add? Для меня вход должен быть '{'id': 'joe'}', но это может быть что-то вроде 'id joe' в порядке. Так что: 'POST http: //example.com/users/1/add? Id = joe & name = joe1' – Joe
Я предполагаю, что вход является частью полезной нагрузки запроса POST, я обновил ответ. Пожалуйста, посмотрите –
Извините, если я не был чист. Я имел в виду, что POST будет принимать эти значения в качестве входов, а функция 'add' будет использовать его. Поэтому внутри 'add', если я ссылаюсь на' id', он должен иметь значение 'joe' – Joe