turbo_response#

Subpackages#

Submodules#

Package Contents#

Classes#

Action

Turbo-Stream action parameter

TurboFrame

Class for creating Turbo Frame strings and responses.

HttpResponseSeeOther

Obsolete: Redirect with 303 status

TurboFrameResponse

Handles turbo-frame template response.

TurboFrameTemplateResponse

Handles turbo-stream template response.

TurboStreamResponse

Basic turbo-stream response.

TurboStreamStreamingResponse

Handles turbo-stream streaming responses. Generator should yield individual

TurboStreamTemplateResponse

Handles turbo-stream template response.

TurboStream

Class for creating Turbo Stream strings and responses.

Functions#

render_turbo_frame(dom_id[, content, is_safe])

Wraps a response in correct <turbo-frame> tags.

render_turbo_stream(action[, target, content, ...])

Wraps content in correct <turbo-stream> tags.

redirect_303(to, *args, **kwargs)

Obsolete: Sends an HTTP 303 redirect.

render_form_response(request, form, template[, ...])

Returns a TemplateResponse with the correct status if the form contains errors.

render_turbo_frame_template(template[, context])

Renders a <turbo-frame> template.

render_turbo_stream_template(template[, context, ...])

Renders a <turbo-stream> template.

dom_id(instance[, prefix])

class turbo_response.Action#

Bases: enum.Enum

Turbo-Stream action parameter

AFTER = 'after'#
APPEND = 'append'#
BEFORE = 'before'#
PREPEND = 'prepend'#
REMOVE = 'remove'#
REPLACE = 'replace'#
UPDATE = 'update'#
class turbo_response.TurboFrame(dom_id)#

Class for creating Turbo Frame strings and responses.

Parameters:

dom_id (str) –

render(content='', **kwargs)#
Parameters:

content (str) – enclosed content

Returns:

a <turbo-frame> string

Return type:

str

response(content='', **kwargs)#
Parameters:
  • content (str) – enclosed content

  • is_safe – mark content safe for HTML escaping.

Returns:

a <turbo-frame> HTTP response

Return type:

turbo_response.response.TurboFrameResponse

template(template_name, context=Optional[Dict[str, Any]], **template_kwargs)#
Parameters:
  • template_name (Union[str, List[str]]) – Django template name(s)

  • context – template context

Returns:

a <turbo-frame> HTTP response

Return type:

TurboFrameTemplate

turbo_response.render_turbo_frame(dom_id, content='', is_safe=False)#

Wraps a response in correct <turbo-frame> tags.

Parameters:
  • dom_id (str) – a DOM ID present in the content

  • content (str) – content of the turbo-frame

  • is_safe (bool) – mark content safe for HTML escaping.

Returns:

<turbo-frame> string

Return type:

str

turbo_response.render_turbo_stream(action, target=None, content='', is_safe=False, is_multiple=False)#

Wraps content in correct <turbo-stream> tags.

Parameters:
  • action (turbo_response.constants.Action) – action type

  • target (Optional[str]) – the DOM ID target of the stream or CSS selector for multiple targetss

  • content (str) – content to be wrapped. Can be empty.

  • is_safe (bool) – mark content safe for HTML escaping.

  • is_multiple (bool) – multiple targets

Returns:

<turbo-stream> string

Return type:

str

class turbo_response.HttpResponseSeeOther#

Bases: django.http.HttpResponseRedirect

Obsolete: Redirect with 303 status

status_code#
class turbo_response.TurboFrameResponse(content='', *, dom_id, is_safe=False, **response_kwargs)#

Bases: django.http.HttpResponse

Handles turbo-frame template response.

Parameters:
  • content (str) –

  • dom_id (str) –

  • is_safe (bool) –

class turbo_response.TurboFrameTemplateResponse(request, template, context=None, *, dom_id, **kwargs)#

Bases: django.template.response.TemplateResponse

Handles turbo-stream template response.

Adds the following variables to the template:

  • is_turbo_frame

  • turbo_frame_dom_id

Parameters:
  • request (django.http.HttpRequest) –

  • template (Union[str, Iterable[str]]) –

  • context (Optional[Mapping[str, Any]]) –

property rendered_content: str#
Return type:

str

is_turbo_frame = True#
class turbo_response.TurboStreamResponse(content='', *, action=None, target=None, is_safe=False, is_multiple=False, **response_kwargs)#

Bases: TurboStreamResponseMixin, django.http.HttpResponse

Basic turbo-stream response.

If action and target are provided, will automatically wrap the response in <turbo-stream> tags. Otherwise you should provide the turbo-stream content string yourself (using e.g. render_turbo_stream) or an iterable of turbo-streams.

Parameters:
  • content (Union[Iterable[str], str]) –

  • action (Optional[turbo_response.constants.Action]) –

  • target (Optional[str]) –

  • is_safe (bool) –

  • is_multiple (bool) –

class turbo_response.TurboStreamStreamingResponse(*args, **kwargs)#

Bases: TurboStreamResponseMixin, django.http.StreamingHttpResponse

Handles turbo-stream streaming responses. Generator should yield individual turbo-stream tags.

For example:

def render():

    for i in range(3):

        yield render_turbo_stream(
            "OK",
            Action.REPLACE,
            target=f"item-{i}"
        )

return TurboStreamStreamingResponse(render())
class turbo_response.TurboStreamTemplateResponse(request, template, context=None, *, action, target, is_multiple=False, **kwargs)#

Bases: TurboStreamResponseMixin, django.template.response.TemplateResponse

Handles turbo-stream template response.

Adds the following variables to the template:

  • is_turbo_stream

  • turbo_stream_action

  • turbo_stream_target

Parameters:
  • request (django.http.HttpRequest) –

  • template (Union[str, Iterable[str]]) –

  • context (Optional[Dict[str, Any]]) –

  • action (turbo_response.constants.Action) –

  • target (str) –

  • is_multiple (bool) –

property rendered_content: str#
Return type:

str

is_turbo_stream = True#
turbo_response.redirect_303(to, *args, **kwargs)#

Obsolete: Sends an HTTP 303 redirect.

Parameters:

to (Union[str, django.db.models.Model]) – URL or view name or model instance. If model then calls get_absolute_url().

Return type:

turbo_response.response.HttpResponseSeeOther

turbo_response.render_form_response(request, form, template, context=None, *, turbo_stream_template=None, turbo_stream_target=None, turbo_stream_action=Action.REPLACE, **response_kwargs)#

Returns a TemplateResponse with the correct status if the form contains errors.

If turbo_stream_template is provided along with turbo_stream_target, a TurboStream response will be returned instead if there are form validation errors.

Parameters:
  • request (django.http.HttpRequest) –

  • form (django.forms.Form) –

  • template (Union[str, List[str]]) –

  • context (Optional[Dict]) –

  • turbo_stream_template (Optional[Union[str, List[str]]]) –

  • turbo_stream_target (Optional[str]) –

  • turbo_stream_action (turbo_response.constants.Action) –

Return type:

django.template.response.TemplateResponse

class turbo_response.TurboStream(target, is_multiple=False)#

Class for creating Turbo Stream strings and responses.

Parameters:
  • target (str) –

  • is_multiple (bool) –

property after: TurboStreamAction#
Return type:

TurboStreamAction

property append: TurboStreamAction#
Return type:

TurboStreamAction

property before: TurboStreamAction#
Return type:

TurboStreamAction

property prepend: TurboStreamAction#
Return type:

TurboStreamAction

property remove: TurboStreamAction#
Return type:

TurboStreamAction

property replace: TurboStreamAction#
Return type:

TurboStreamAction

property update: TurboStreamAction#
Return type:

TurboStreamAction

action(action)#
Parameters:

action (turbo_response.constants.Action) –

Return type:

TurboStreamAction

turbo_response.render_turbo_frame_template(template, context=None, *, dom_id, **kwargs)#

Renders a <turbo-frame> template.

Parameters:
  • template (Union[str, List[str]]) – template name or names

  • context (Optional[Dict[str, Any]]) – template context

  • dom_id (str) – turbo-frame DOM ID

Return type:

str

turbo_response.render_turbo_stream_template(template, context=None, *, action, target, is_multiple=False, **template_kwargs)#

Renders a <turbo-stream> template.

Parameters:
  • template (Union[str, List[str]]) – template name or names

  • context (Optional[Dict[str, Any]]) – template context

  • action (turbo_response.constants.Action) – turbo-stream action

  • target (str) – turbo-stream target

  • is_multiple (bool) –

Return type:

str

turbo_response.dom_id(instance, prefix='')#
Parameters:
  • instance (Any) –

  • prefix (Optional[str]) –

Return type:

str