使用Django v1.10和Postgres
有一个datafield可能包含混合符号(例如\ |?),数字,字母,以及亚洲语言字符。在
用户表示此字段的最大值应为15个字符。在
如何使用Django和Postgres作为数据库来实现这一点?在postgres中,我们使用utf-8编码。在
1个字符可以是数字、汉字或英文字母
我知道在PHP中,有一个名为mb_strlen的函数。And in python, the equivalent would be to use unicode strings。在
在Django方法中,执行max string length的最佳方法是什么?在
首先,你必须从定义字符的含义开始。您提到了韩语,这是许多字符串长度函数误解的语言之一。在
多个unicode字符可用于描述单个字符(用户感知字符),例如:
使用unicode字符串可以很容易地计算unicode字符的数量,但这与用户感知到的字符数不同。我建议阅读这篇关于python text length的文章。在
如果您希望计数unicode字符而不是字符,那么这很简单。只需使用
CharField
和max_length
参数(在您的模型和表单上)。在但是,如果希望将字段限制为最多15个字符,则必须让数据库字段包含更多字符,并为表单创建一些custom validation。在
这类验证器的一个有用的库可能是^{} ,它可以计算字符串中的字符数。在
相关问题 更多 >
编程相关推荐