Как использовать разные поля поиска в каждом запросе одного класса
Хочу получить доступ к разным запросам, используя разные поля поиска. Я использовал simplerouter в router и ModelViewSet в views из django rest framework.
Пример ожидаемого варианта использования:
url для выполнения обновления - /user/{id}/
url для выполнения удаления - /user/{creation_date}/
Пожалуйста, помогите решить проблему.
Спасибо.
Вы можете сделать свое пользовательское представление api и собрать поля, которые вы хотите использовать для выполнения любых действий. В этом случае не передавайте никаких ключей вместе с url. Передавайте ключи с запрашиваемыми данными.
Пример :
class UserAPIView(APIView):
def post(self, request, *args, **kwargs):
email = request.data.get('email', None)
pk = request.data.get('pk', None)
# you can use the email or id or any field that you posted to do your work below like update delete etc.
# Return your response
return Response({'details': 'email and password is required'}, status=status.HTTP_204_NO_CONTENT)