Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Invenio digital library framework.

Project description


image image image image


    pip install oarepo-actions


The library provides functionality for adding functions into your data models with supported REST methods, which are GET, POST, PUT and DELETE. It will create URL rule for your method, and use default or defined serializers, permissions and url path.

Decorate your method with @action() decorator and add optional parameters.

List of optional parameters

  • for specifing url_path, which will be added after list-route or item-route from your configuration
  • by default allow all
  • accepts permission factory
  • for REST method
  • by default get
  • you can use get, put, delete or post written with lowercase letters
  • by default application/json serializer.
  • accepts dictionary where key is MIME type and value your own serializer
  • by default True. Change to False if method is class method
  • determines which route will be used (list route if detail is False)


class SampleRecord(Record):

    def test_a(self, **kwargs):
        return {"title": self["title"]}

    @action(detail=False, url_path="send_email")
    def test_b(cls, **kwargs):
        return {"title": self["title"]}

    @action(detail=False, permissions=permission_factory)
    def test_c(cls, **kwargs):
        return {"title": self["title"]}

    @action(detail=False, url_path="test/<int:param>",  permissions=permission_factory)
    def test_d(cls, param = None, **kwargs):
        return Response(status=200)

    @action(detail=False, permissions = permission_factory, serializers = {'text/html': make_response})
    def test_e(cls, **kwargs):
        return '<h1>xx</h1>'

    @action(detail=False, url_path='test',permissions=allow_all, method='post')
    def test_f(cls, param=None, **kwargs):
        return {param: "yy"}
  • url_a = server/records/1/test_a
  • url_b = server/records/send_email
  • url_c = server/records/test_c
  • url_d = server/records/test/42
  • url_e = server/records/test_e
  • url_f = server/records/test
    • post method


Version 1.0.0 (released 2020-09-15)

  • Initial public release.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for oarepo-actions, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size oarepo_actions-1.0.1-py3-none-any.whl (7.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size oarepo-actions-1.0.1.tar.gz (13.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page