decorators.py 805 B

12345678910111213141516171819202122232425262728293031323334
  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. return f(request, *args, **kwargs)
  8. return decorator
  9. def require_POST(f):
  10. def decorator(request, *args, **kwargs):
  11. if not request.method == "POST":
  12. return not_allowed(request)
  13. return f(request, *args, **kwargs)
  14. return decorator
  15. def require_dict_data(f):
  16. def decorator(request, *args, **kwargs):
  17. if request.method == "POST":
  18. DummySerializer(data=request.data).is_valid(raise_exception=True)
  19. return f(request, *args, **kwargs)
  20. return decorator
  21. class DummySerializer(serializers.Serializer):
  22. pass