我的模型中的某些字段(通过 mysql 数据库)在访问时返回 u'\x00',我想在 django 模板中检测到这一点。这是我看到的:
(Pdb) patient.address.fax
u'\x00'
我正在尝试在模板中执行以下操作......
{% if person.address.fax != u"\x00" %}
<abbr class="icon-print" title = "Phone"> </abbr> {{person.address.fax}} </br>
{% endif %}
上面的模板代码出现以下错误:
Could not parse the remainder: '"\x00"' from 'u"\x00"'
本质上,如果 person.address.fax = u'\x00',我不想打印传真号码。我该怎么做?
背景:
我使用 bcp 导出 MSSQL 数据库并将数据导入 MySQL。当我在 emacs 中查看从 MSSQL 导出的数据时,我在其中看到了一堆“^@”(不带引号)。导入此文件后,我怀疑此 ^@ 显示为\x00(NULL 字符?)。可能有一些方法可以防止 MSSQL 以不同的方式导出它,但这会使我的事情变得复杂,我宁愿得到上述问题的答案。
请您参考如下方法:
Django 的模板将
unicode视为字符串;您不需要u前缀。您在导入时使用了错误的字符集;您需要先将字符集设置为 UTF-16LE。bcp“有帮助”输出 NUL 而不是原始字段为NULL的 CSV 中的空字符串;要么告诉 bcp 关闭它,要么执行UPDATE查询,将每个字段设置为NULL,其中它等于'\0'。
