using templatetags
split would be something like this:
as templatetags
only takes one argument
, but for split with max limit we need to pass two arguments
.
in such case we can combind the two arguments as a string and use a separator.
here for example i'm using ||||
as two arguments separator
in your app folder create one folder, named templatetags
there create a file split.py
:
from django import template
register = template.Library()
@register.filter
def split(splitable, split_at):
# split with max limit
if len(split_at.split("||||")) == 2:
return splitable.split(split_at.split("||||")[0], int(split_at.split("||||")[1]))
# normal split without max limitation
return splitable.split(split_at)
now it's better to restart your server once.
then in template do:
{% load split %}
<!-- first element no split limit -->
{{ str1|split:"-"|first }}
<!-- first element with split limit, in following example, the limit is 1 -->
{{ str1|split:"-||||1"|first }}
<!-- last element no split limit -->
{{ str1|split:"-"|last }}
<!-- last element with split limit, in following example, the limit is 1 -->
{{ str1|split:"-||||1"|last }}
<!-- element by index no split limit -->
{% with str1|split:"-" as split_data %}{{ split_data.0 }}{% endwith %}
<!-- element by index with split limit, in following example, the limit is 1 -->
{% with str1|split:"-||||1" as split_data %}{{ split_data.0 }}{% endwith %}