27 lines
648 B
Python
27 lines
648 B
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
try:
|
|
from django.utils.encoding import force_text
|
|
except ImportError:
|
|
from django.utils.encoding import force_unicode as force_text
|
|
|
|
|
|
def text_value(value):
|
|
"""
|
|
Force a value to text, render None as an empty string
|
|
"""
|
|
if value is None:
|
|
return ''
|
|
return force_text(value)
|
|
|
|
|
|
def text_concat(*args, **kwargs):
|
|
"""
|
|
Concatenate several values as a text string with an optional separator
|
|
"""
|
|
separator = text_value(kwargs.get('separator', ''))
|
|
values = filter(None, [text_value(v) for v in args])
|
|
return separator.join(values)
|