decorators.py 840 B

1234567891011121314151617181920212223242526272829303132333435
  1. from rest_framework import serializers
  2. from .errorpages import not_allowed
  3. def ajax_only(f):
  4. def decorator(request, *args, **kwargs):
  5. if not request.is_ajax():
  6. return not_allowed(request)
  7. else:
  8. return f(request, *args, **kwargs)
  9. return decorator
  10. def require_POST(f):
  11. def decorator(request, *args, **kwargs):
  12. if not request.method == 'POST':
  13. return not_allowed(request)
  14. else:
  15. return f(request, *args, **kwargs)
  16. return decorator
  17. def require_dict_data(f):
  18. def decorator(request, *args, **kwargs):
  19. if request.method == 'POST':
  20. DummySerializer(data=request.data).is_valid(raise_exception=True)
  21. return f(request, *args, **kwargs)
  22. return decorator
  23. class DummySerializer(serializers.Serializer):
  24. pass