Django中有没有过滤器用星号代替文本显示?
我想知道有没有什么方法可以把所有的文字都显示成*,像这样
mytext = 'raja'
{{ mytext|password }}
应该显示成 ****
我们该怎么做呢?
2 个回答
2
这真的是个密码吗?那听起来不太好——你真的想让别人知道这个密码是4个字符吗?不如直接在模板里总是显示4个(或者5个,或者其他数量的)星号。
否则,我觉得没必要使用过滤器。只需通过上下文传入一串星号就行了:
mytext = 'raja'
ctx = Context({'mytext': '*' * len(mytext)})
t = Template('password: {{ mytext }}')
s = t.render(ctx)
3
很简单。这样做:
{% for char in mytext %}*{% endfor %}
话说回来,我可以问你在哪里显示密码吗?通常密码是不会在屏幕上显示的。如果你想在表单中显示密码,可以使用一个叫做 PasswordInput
的小工具。
正如@Ars所说,显示密码的长度是个坏主意。你可能想用随机数量的星号来代替显示。