def render(self, name, value, attrs=None):
        if value is not None and not isinstance(value, str):
            tags = [o.tag for o in value.select_related("tag")]
            value = edit_string_for_tags(tags)

        result_attrs = copy.copy(attrs)
        result_attrs['type'] = 'hidden'
        result_html = super(TagAutoSuggest, self).render(name,
                                                         value,
                                                         result_attrs)
        widget_attrs = copy.copy(attrs)
        widget_attrs['id'] += '__tagautosuggest'
        widget_html = super(TagAutoSuggest, self).render(name,
                                                         value,
                                                         widget_attrs)

        start_text = self.attrs.get('start_text') or _("Enter Tag Here")
        empty_text = self.attrs.get('empty_text') or _("No Results")
        prompt_text = self.attrs.get('prompt_text') or _("Enter a tag")
        limit_text = self.attrs.get('limit_text') or _('No More Selections Are Allowed')

        context = {
            'result_id': result_attrs['id'],
            'widget_id': widget_attrs['id'],
            'url': reverse('taggit_autosuggest_select2-list-all'),
            'start_text': start_text,
            'prompt_text': prompt_text,
            'empty_text': empty_text,
            'limit_text': limit_text,
            'retrieve_limit': MAX_SUGGESTIONS,
        }
        js = render_to_string('taggable_input.html', context)

        return result_html + widget_html + mark_safe(js)
Пример #2
0
    def render(self, name, value, attrs=None):
        if value is not None and not isinstance(value, basestring):
            tags = [o.tag for o in value.select_related("tag")]
            value = edit_string_for_tags(tags)

        result_attrs = copy.copy(attrs)
        result_attrs['type'] = 'hidden'
        result_html = super(TagAutoSuggest,
                            self).render(name, value, result_attrs)
        widget_attrs = copy.copy(attrs)
        widget_attrs['id'] += '__tagautosuggest'
        widget_html = super(TagAutoSuggest,
                            self).render(name, value, widget_attrs)

        start_text = self.attrs.get('start_text') or _("Enter Tag Here")
        empty_text = self.attrs.get('empty_text') or _("No Results")
        prompt_text = self.attrs.get('prompt_text') or _("Enter a tag")
        limit_text = self.attrs.get('limit_text') or _(
            'No More Selections Are Allowed')

        context = {
            'result_id': result_attrs['id'],
            'widget_id': widget_attrs['id'],
            'url': reverse('taggit_autosuggest_select2-list-all'),
            'start_text': start_text,
            'prompt_text': prompt_text,
            'empty_text': empty_text,
            'limit_text': limit_text,
            'retrieve_limit': MAX_SUGGESTIONS,
        }
        js = render_to_string('taggable_input.html', context)

        return result_html + widget_html + mark_safe(js)
    def render(self, name, value, attrs=None):
        if value is not None and not isinstance(value, str):
            tags = [o.tag for o in value.select_related("tag")]
            value = edit_string_for_tags(tags)

        result_attrs = copy.copy(attrs)
        result_attrs['type'] = 'hidden'
        result_html = super(TagAutoSuggest, self).render(name,
                                                         value,
                                                         result_attrs)
        widget_attrs = copy.copy(attrs)
        widget_attrs['id'] += '__tagautosuggest'
        widget_html = super(TagAutoSuggest, self).render(name,
                                                         value,
                                                         widget_attrs)

        start_text = self.attrs.get('start_text') or _("Enter Tag Here")
        empty_text = self.attrs.get('empty_text') or _("No Results")
        prompt_text = self.attrs.get('prompt_text') or _("Enter a tag")
        limit_text = self.attrs.get('limit_text') or _('No More Selections Are Allowed')
        # In case there is no field_width, use the global setting TAGGIT_AUTOSUGGEST_SELECT2_WIDTH
        field_width = self.attrs.get('field_width') or WIDTH


        self.extra_settings.update(EXTRA_SETTINGS)

        context = {
            'result_id': result_attrs['id'],
            'widget_id': widget_attrs['id'],
            'url': self.url,
            'start_text': start_text,
            'prompt_text': prompt_text,
            'empty_text': empty_text,
            'limit_text': limit_text,
            'field_width': field_width,
            'retrieve_limit': MAX_SUGGESTIONS,
            'extra_settings': json_encode(self.extra_settings),
        }
        js = render_to_string('taggable_input.html', context)

        return result_html + widget_html + mark_safe(js)
Пример #4
0
    def render(self, name, value, attrs=None):
        if value is not None and not isinstance(value, basestring):
            tags = [o.tag for o in value.select_related("tag")]
            value = edit_string_for_tags(tags)

        result_attrs = copy.copy(attrs)
        result_attrs['type'] = 'hidden'
        result_html = super(TagAutoSuggest,
                            self).render(name, value, result_attrs)
        widget_attrs = copy.copy(attrs)
        widget_attrs['id'] += '__tagautosuggest'
        widget_html = super(TagAutoSuggest,
                            self).render(name, value, widget_attrs)

        start_text = self.attrs.get('start_text') or _("Enter Tag Here")
        empty_text = self.attrs.get('empty_text') or _("No Results")
        prompt_text = self.attrs.get('prompt_text') or _("Enter a tag")
        limit_text = self.attrs.get('limit_text') or _(
            'No More Selections Are Allowed')
        # In case there is no field_width, use the global setting TAGGIT_AUTOSUGGEST_SELECT2_WIDTH
        field_width = self.attrs.get('field_width') or WIDTH

        self.extra_settings.update(EXTRA_SETTINGS)

        context = {
            'result_id': result_attrs['id'],
            'widget_id': widget_attrs['id'],
            'url': self.url,
            'start_text': start_text,
            'prompt_text': prompt_text,
            'empty_text': empty_text,
            'limit_text': limit_text,
            'field_width': field_width,
            'retrieve_limit': MAX_SUGGESTIONS,
            'extra_settings': json_encode(self.extra_settings),
        }
        js = render_to_string('taggable_input.html', context)

        return result_html + widget_html + mark_safe(js)