diff --git a/README.md b/README.md index 30a464e..1c906cd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # django-tagify2 -[![GitHub version](https://img.shields.io/badge/version-1.0.14-blue.svg)](https://pypi.org/project/django-tagify2/) +[![GitHub version](https://img.shields.io/badge/version-1.0.15-blue.svg)](https://pypi.org/project/django-tagify2/) [![License: GPL v3](https://img.shields.io/badge/License-GPL%20V3-blue.svg)](https://github.com/gojuukaze/django-tagify2/blob/master/LICENSE) django tag input field using [tagify](https://github.com/yairEO/tagify) diff --git a/setup.py b/setup.py index 311e6cf..a045d73 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( name='django-tagify2', - version='1.0.14', + version='1.0.15', description='django tag input field using tagify.js', url='https://github.com/gojuukaze/django-tagify2', author="gojuukaze", diff --git a/tagify/fields.py b/tagify/fields.py index 7b2650a..71b3949 100644 --- a/tagify/fields.py +++ b/tagify/fields.py @@ -18,6 +18,8 @@ def __init__(self, *, place_holder='', delimiters=' ', data_list=None, self.min_length = min_length self.strip = strip self.empty_value = empty_value + self.delimiters = delimiters + super().__init__(**kwargs) if min_length is not None: @@ -26,7 +28,6 @@ def __init__(self, *, place_holder='', delimiters=' ', data_list=None, self.validators.append(validators.MaxLengthValidator(int(max_length))) self.validators.append(validators.ProhibitNullCharactersValidator()) - self.delimiters = delimiters tag_args = {} tag_args['placeholder'] = place_holder tag_args['delimiters'] = delimiters @@ -51,3 +52,9 @@ def set_var_name(self, value): def set_tag_args(self, key, value): key = NameDict.get(key, key) self.widget.tag_args[key] = value + + def widget_attrs(self, widget): + # todo: 把init中的属性移到这 + attrs = super(TagField, self).widget_attrs(widget) + attrs['delimiters'] = self.delimiters + return attrs diff --git a/tagify/widgets.py b/tagify/widgets.py index 92aca10..2e55f30 100644 --- a/tagify/widgets.py +++ b/tagify/widgets.py @@ -15,9 +15,7 @@ def format_value(self, value): if not value: return '' if isinstance(value, list): - tag_args = getattr(self, "tag_args", {}) - delimiters = getattr(tag_args, 'delimiters', ' ') - return delimiters.join(value) + return self.attrs["delimiters"].join(value) return super(TagInput, self).format_value(value) def get_context(self, name, value, attrs):