我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用django.utils.encoding.smart_text()。
def __unicode__(self, show_attribute=True): value = '' if self.attribute.type_value == TYPE_VALUE_BOOLEAN: value = bool(self.value) and _('True') or _('False') elif self.attribute.type_value == TYPE_VALUE_FREE: value = self.value elif self.attribute.type_value == TYPE_VALUE_LIST: lang = get_language_database() field = '{}__description'.format(lang) ov = OptionValueAttribute.objects.filter( group=self.attribute.list_value, pk=int(self.value) ).values( field ).first() if ov: value = ov[field] if show_attribute: return u"{}: {}".format(smart_text(self.attribute), smart_text(value)) else: return u"{}".format(smart_text(value))
def changes_str(self, colon=': ', arrow=smart_text(' \u2192 '), separator='; '): """ Return the changes recorded in this log entry as a string. The formatting of the string can be customized by setting alternate values for colon, arrow and separator. If the formatting is still not satisfying, please use :py:func:`LogAction.changes_dict` and format the string yourself. :param colon: The string to place between the field name and the values. :param arrow: The string to place between each old and new value. :param separator: The string to place between each field. :return: A readable string of the changes in this log entry. """ substrings = [] for field, values in iteritems(self.changes_dict): substring = smart_text('{field_name:s}{colon:s}{old:s}{arrow:s}{new:s}').format( field_name=field, colon=colon, old=values[0], arrow=arrow, new=values[1], ) substrings.append(substring) return separator.join(substrings)
def to_python(self, value): """ Validates that the input is a decimal number. Returns a Decimal instance. Returns None for empty values. Ensures that there are no more than max_digits in the number, and no more than decimal_places digits after the decimal point. """ if value in self.empty_values: return None if self.localize: value = formats.sanitize_separators(value) value = smart_text(value).strip() try: value = Decimal(value) except DecimalException: raise ValidationError(self.error_messages['invalid'], code='invalid') return value
def start_object(self, obj): """ Called as each object is handled. """ if not hasattr(obj, "_meta"): raise base.SerializationError("Non-model object (%s) encountered during serialization" % type(obj)) self.indent(1) model = obj._meta.proxy_for_model if obj._deferred else obj.__class__ attrs = OrderedDict([("model", smart_text(model._meta))]) if not self.use_natural_primary_keys or not hasattr(obj, 'natural_key'): obj_pk = obj._get_pk_val() if obj_pk is not None: attrs['pk'] = smart_text(obj_pk) self.xml.startElement("object", attrs)
def choices(self, cl): yield { 'selected': self.lookup_val is None and not self.lookup_val_isnull, 'query_string': cl.get_query_string({}, [self.lookup_kwarg, self.lookup_kwarg_isnull]), 'display': _('All'), } for pk_val, val in self.lookup_choices: yield { 'selected': self.lookup_val == smart_text(pk_val), 'query_string': cl.get_query_string({ self.lookup_kwarg: pk_val, }, [self.lookup_kwarg_isnull]), 'display': val, } if self.include_empty_choice: yield { 'selected': bool(self.lookup_val_isnull), 'query_string': cl.get_query_string({ self.lookup_kwarg_isnull: 'True', }, [self.lookup_kwarg]), 'display': self.empty_value_display, }
def display_for_field(value, field, empty_value_display): from django.contrib.admin.templatetags.admin_list import _boolean_icon if getattr(field, 'flatchoices', None): return dict(field.flatchoices).get(value, empty_value_display) # NullBooleanField needs special-case null-handling, so it comes # before the general null test. elif isinstance(field, models.BooleanField) or isinstance(field, models.NullBooleanField): return _boolean_icon(value) elif value is None: return empty_value_display elif isinstance(field, models.DateTimeField): return formats.localize(timezone.template_localtime(value)) elif isinstance(field, (models.DateField, models.TimeField)): return formats.localize(value) elif isinstance(field, models.DecimalField): return formats.number_format(value, field.decimal_places) elif isinstance(field, (models.IntegerField, models.FloatField)): return formats.number_format(value) elif isinstance(field, models.FileField) and value: return format_html('<a href="{}">{}</a>', value.url, value) else: return smart_text(value)
def get_formats(): """ Returns all formats strings required for i18n to work """ FORMAT_SETTINGS = ( 'DATE_FORMAT', 'DATETIME_FORMAT', 'TIME_FORMAT', 'YEAR_MONTH_FORMAT', 'MONTH_DAY_FORMAT', 'SHORT_DATE_FORMAT', 'SHORT_DATETIME_FORMAT', 'FIRST_DAY_OF_WEEK', 'DECIMAL_SEPARATOR', 'THOUSAND_SEPARATOR', 'NUMBER_GROUPING', 'DATE_INPUT_FORMATS', 'TIME_INPUT_FORMATS', 'DATETIME_INPUT_FORMATS' ) result = {} for module in [settings] + get_format_modules(reverse=True): for attr in FORMAT_SETTINGS: result[attr] = get_format(attr) formats = {} for k, v in result.items(): if isinstance(v, (six.string_types, int)): formats[k] = smart_text(v) elif isinstance(v, (tuple, list)): formats[k] = [smart_text(value) for value in v] return formats
def choices(self, changelist): yield { 'selected': self.lookup_val is None and not self.lookup_val_isnull, 'query_string': changelist.get_query_string( {}, [self.lookup_kwarg, self.lookup_kwarg_isnull] ), 'display': _('All'), } for pk_val, val in self.lookup_choices: yield { 'selected': self.lookup_val == smart_text(pk_val), 'query_string': changelist.get_query_string({ self.lookup_kwarg: pk_val, }, [self.lookup_kwarg_isnull]), 'display': val, } if self.include_empty_choice: yield { 'selected': bool(self.lookup_val_isnull), 'query_string': changelist.get_query_string({ self.lookup_kwarg_isnull: 'True', }, [self.lookup_kwarg]), 'display': self.empty_value_display, }
def display_for_value(value, empty_value_display, boolean=False): from django.contrib.admin.templatetags.admin_list import _boolean_icon if boolean: return _boolean_icon(value) elif value is None: return empty_value_display elif isinstance(value, datetime.datetime): return formats.localize(timezone.template_localtime(value)) elif isinstance(value, (datetime.date, datetime.time)): return formats.localize(value) elif isinstance(value, six.integer_types + (decimal.Decimal, float)): return formats.number_format(value) elif isinstance(value, (list, tuple)): return ', '.join(force_text(v) for v in value) else: return smart_text(value)
def test_change_attributes_in_product_form(db, product_in_stock, color_attribute): product = product_in_stock product_class = product.product_class text_attribute = ProductAttribute.objects.create(slug='author', name='Author') product_class.product_attributes.add(text_attribute) color_value = color_attribute.values.first() new_author = 'Main Tester' new_color = color_value.pk data = {'name': product.name, 'price': product.price.gross, 'categories': [c.pk for c in product.categories.all()], 'description': 'description', 'attribute-author': new_author, 'attribute-color': new_color} form = ProductForm(data, instance=product) assert form.is_valid() product = form.save() assert product.get_attribute(color_attribute.pk) == smart_text(new_color) assert product.get_attribute(text_attribute.pk) == new_author
def test_saleor_feed_items(product_in_stock): valid_variant = product_in_stock.variants.first() items = get_feed_items() assert len(items) == 1 categories = Category.objects.all() discounts = [] category_paths = {} attributes_dict = {} current_site = Site.objects.get_current() attribute_values_dict = {smart_text(a.pk): smart_text(a) for a in AttributeChoiceValue.objects.all()} attributes = item_attributes(items[0], categories, category_paths, current_site, discounts, attributes_dict, attribute_values_dict) assert attributes.get('mpn') == valid_variant.sku assert attributes.get('availability') == 'in stock'
def write_feed(file_obj): """ Writes feed contents info provided file object """ writer = csv.DictWriter(file_obj, ATTRIBUTES, dialect=csv.excel_tab) writer.writeheader() categories = Category.objects.all() discounts = Sale.objects.all().prefetch_related('products', 'categories') attributes_dict = {a.slug: a.pk for a in ProductAttribute.objects.all()} attribute_values_dict = {smart_text(a.pk): smart_text(a) for a in AttributeChoiceValue.objects.all()} category_paths = {} current_site = Site.objects.get_current() for item in get_feed_items(): item_data = item_attributes(item, categories, category_paths, current_site, discounts, attributes_dict, attribute_values_dict) writer.writerow(item_data)
def get_fixed_discount_for(self, amount): if self.discount_value_type == self.DISCOUNT_VALUE_FIXED: discount_price = Price(net=self.discount_value, currency=settings.DEFAULT_CURRENCY) discount = FixedDiscount( amount=discount_price, name=smart_text(self)) elif self.discount_value_type == self.DISCOUNT_VALUE_PERCENTAGE: discount = percentage_discount( value=self.discount_value, name=smart_text(self)) fixed_discount_value = amount - discount.apply(amount) discount = FixedDiscount( amount=fixed_discount_value, name=smart_text(self)) else: raise NotImplementedError('Unknown discount value type') if discount.amount > amount: return FixedDiscount(amount, name=smart_text(self)) else: return discount
def choices(self): yield { 'selected': self.lookup_exact_val == '' and not self.lookup_isnull_val, 'query_string': self.query_string({}, [self.lookup_exact_name, self.lookup_isnull_name]), 'display': _('All'), } for pk_val, val in self.lookup_choices: yield { 'selected': self.lookup_exact_val == smart_text(pk_val), 'query_string': self.query_string({ self.lookup_exact_name: pk_val, }, [self.lookup_isnull_name]), 'display': val, } if (is_related_field(self.field) and self.field.field.null or hasattr(self.field, 'rel') and self.field.null): yield { 'selected': bool(self.lookup_isnull_val), 'query_string': self.query_string({ self.lookup_isnull_name: 'True', }, [self.lookup_exact_name]), 'display': EMPTY_CHANGELIST_VALUE, }
def choices(self): yield { 'selected': (self.lookup_exact_val is '' and self.lookup_isnull_val is ''), 'query_string': self.query_string({}, [self.lookup_exact_name, self.lookup_isnull_name]), 'display': _('All'), } include_none = False for val in self.lookup_choices: if val is None: include_none = True continue val = smart_text(val) yield { 'selected': self.lookup_exact_val == val, 'query_string': self.query_string({self.lookup_exact_name: val}, [self.lookup_isnull_name]), 'display': val, } if include_none: yield { 'selected': bool(self.lookup_isnull_val), 'query_string': self.query_string({self.lookup_isnull_name: 'True'}, [self.lookup_exact_name]), 'display': EMPTY_CHANGELIST_VALUE, }
def display_for_field(value, field): from xadmin.views.list import EMPTY_CHANGELIST_VALUE if field.flatchoices: return dict(field.flatchoices).get(value, EMPTY_CHANGELIST_VALUE) # NullBooleanField needs special-case null-handling, so it comes # before the general null test. elif isinstance(field, models.BooleanField) or isinstance(field, models.NullBooleanField): return boolean_icon(value) elif value is None: return EMPTY_CHANGELIST_VALUE elif isinstance(field, models.DateTimeField): return formats.localize(tz_localtime(value)) elif isinstance(field, (models.DateField, models.TimeField)): return formats.localize(value) elif isinstance(field, models.DecimalField): return formats.number_format(value, field.decimal_places) elif isinstance(field, models.FloatField): return formats.number_format(value) elif isinstance(field.rel, models.ManyToManyRel): return ', '.join([smart_text(obj) for obj in value.all()]) else: return smart_text(value)
def get_related_versions(self, obj, version, formset): """Retreives all the related Version objects for the given FormSet.""" object_id = obj.pk # Get the fk name. try: fk_name = formset.fk.name + '_' + formset.fk.rel.get_related_field().name except AttributeError: # This is a GenericInlineFormset, or similar. fk_name = formset.ct_fk_field.name # Look up the revision data. revision_versions = version.revision.version_set.all() related_versions = dict([(related_version.object_id, related_version) for related_version in revision_versions if ContentType.objects.get_for_id(related_version.content_type_id).model_class() == formset.model and smart_text(related_version.field_dict[fk_name]) == smart_text(object_id)]) return related_versions
def _get_new_field_html(self, field_name): try: f, attr, value = lookup_field(field_name, self.org_obj, self) except (AttributeError, ObjectDoesNotExist): return EMPTY_CHANGELIST_VALUE else: allow_tags = False if f is None: allow_tags = getattr(attr, 'allow_tags', False) boolean = getattr(attr, 'boolean', False) if boolean: allow_tags = True text = boolean_icon(value) else: text = smart_text(value) else: if isinstance(f.rel, models.ManyToOneRel): field_val = getattr(self.org_obj, f.name) if field_val is None: text = EMPTY_CHANGELIST_VALUE else: text = field_val else: text = display_for_field(value, f) return mark_safe(text) if allow_tags else conditional_escape(text)
def __iter__(self): if self.field.group_by is None: yield from super().__iter__() return if self.field.empty_label is not None: yield ("", self.field.empty_label) qs = self.queryset if self.field.is_relation: if self.field.group_by not in qs.query.order_by: qs.query.order_by.insert(0, self.field.group_by) qs = qs.select_related(self.field.group_by) groups = groupby( qs.all(), key=lambda row: getattr(row, self.field.group_by) ) for group, choices in groups: yield smart_text(group), [self.choice(ch) for ch in choices]
def __unicode__(self): return u"{}".format(smart_text(self.name))
def __str__(self): return u"{}".format(smart_text(self.description_short))
def __str__(self): if self.code: return u"{} ({})".format(smart_text(getattr(self, settings.LANGUAGES_DATABASES[0].lower()).name), smart_text(self.code)) else: return u"{}".format(smart_text(getattr(self, settings.LANGUAGES_DATABASES[0].lower()).name))
def __unicode__(self): name_res = _("Missing brand name") for lang_code, lang_name in settings.LANGUAGES: translation = getattr(self, lang_code.lower(), None) if translation is not None: if translation.name and len(translation.name) > 0: name_res = u"{}".format(smart_text(translation.name)) else: name_res = u"{}".format(smart_text(translation.slug)) return name_res
def __unicode__(self): return u"{}".format(smart_text(self.code))
def __unicode__(self): return u"{} ({})".format(smart_text(self.product), smart_text(self.hits))
def __unicode__(self): return u"{} ({})".format(smart_text(self.product), smart_text(self.order))
def __unicode__(self): return u"{}".format(smart_text(self.product))
def __unicode__(self): return u"{} ({})".format(smart_text(self.product_final), smart_text(self.order))
def __unicode__(self): return u"{}".format(smart_text(self.product_final))
def get_prep_value(self, value): if value is None: return None return smart_text(base64.b64encode(pickle.dumps(value)))