场景:
我想存储评论的文本,保存简单的文本格式,换行什么的。
比如用户的评论数据为"abc def\n\ndefghijklmn\r\n",我将原数据直接存储,
但是我显示这条数据的时候(在模板中应用的时候,或者其他需要 html 格式返回时),返回这样的数据,进行了处理替换掉换行的符号"abc def
defghijklmn
"
在数据展示的时候再进行处理,是考虑可以方便以后的更改和增加其他自定义标记文本格式的支持(Markdown)。
我希望这样的处理在我写好函数后自动在后台处理,不知道在 Django 框架中那个模块处理比较好,是在表单模块还是在数据模型。
举例:
模型
class Comment(models.Model):
article = models.ForeignKey(Article)
name = models.CharField(max_length=32)
comment = models.CharField(max_length=1024)
处理函数
def handler_comment(str):
....
return str.replace('\n','
')
这个处理函数应该是在 django 某个模块后台(默认的某个流程中自动处理)
使用
:comment = r"abc\ndef"
:c = Comment.objects.create(article, name, comment)
:print c.comment
"abcdef"
# 在模板中
c.comment
abc
def
当然还要注意数据的安全以防造成 xss