-
Django 提供了许多实用函数(特别是在
django.utils
中),它们将字符串作为第一个参数并对该字符串执行某些操作。这些函数由模板过滤器以及直接在其他代码中使用。如果您编写自己的类似函数并处理翻译,您将面临第一个参数是惰性翻译对象时该怎么办的问题。您不想立即将其转换为字符串,因为您可能在视图之外使用此函数(因此当前线程的区域设置将不正确)。
对于这种情况,请使用
django.utils.functional.keep_lazy()
装饰器。它修改了函数,以便if
以惰性翻译作为其参数之一调用它,函数评估被延迟,直到需要将其转换为字符串。例如:
from django.utils.functional import keep_lazy, keep_lazy_text def fancy_utility_function(s, ...): # Do some conversion on string 's' ... fancy_utility_function = keep_lazy(str)(fancy_utility_function) # Or more succinctly: @keep_lazy(str) def fancy_utility_function(s, ...): ...
keep_lazy()
装饰器采用一些额外的参数(*args
)来指定原始函数可以返回的类型。一个常见的用例是具有返回文本的函数。对于这些,您可以将str
类型传递给keep_lazy
(或使用下一节中说明的keep_lazy_text()
使用这个装饰器意味着你可以编写你的函数并假设输入是一个正确的字符串,然后在最后添加对惰性翻译对象的支持。
本文介绍 django.utils.functional.keep_lazy
的用法。
声明
keep_lazy(func, *resultclasses)[source]
相关用法
- Python Django keep_lazy_text用法及代码示例
- Python dict keys()用法及代码示例
- Python cudf.core.column.string.StringMethods.is_vowel用法及代码示例
- Python torch.distributed.rpc.rpc_async用法及代码示例
- Python torch.nn.InstanceNorm3d用法及代码示例
- Python sklearn.cluster.MiniBatchKMeans用法及代码示例
- Python pandas.arrays.IntervalArray.is_empty用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代码示例
- Python numpy.less()用法及代码示例
- Python Matplotlib.figure.Figure.add_gridspec()用法及代码示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代码示例
- Python Django File.save用法及代码示例
- Python Sympy Permutation.list()用法及代码示例
- Python dask.dataframe.Series.apply用法及代码示例
- Python networkx.algorithms.shortest_paths.weighted.all_pairs_dijkstra_path用法及代码示例
- Python scipy.ndimage.binary_opening用法及代码示例
- Python pyspark.pandas.Series.dropna用法及代码示例
- Python torchaudio.transforms.Fade用法及代码示例
- Python dask.dataframe.to_records用法及代码示例
- Python arcgis.gis._impl._profile.ProfileManager.save_as用法及代码示例
- Python pyspark.pandas.groupby.SeriesGroupBy.unique用法及代码示例
- Python distributed.protocol.serialize.register_generic用法及代码示例
- Python numpy.polynomial.hermite.hermmul用法及代码示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代码示例
- Python arcgis.raster.functions.ccdc_analysis用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.utils.functional.keep_lazy。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。