为了账号安全,请及时绑定邮箱和手机立即绑定

mongoengine 中如何添加带格式的字符串(换行,空格等)

mongoengine 中如何添加带格式的字符串(换行,空格等)

慕桂英546537 2019-04-16 20:27:59
使用Django框架.django中CharField对应mongoengine的StringField.但是TextField在mongoengine无对应类型.TextField可以保存带格式的字符串,而CharField不行查看django文档说是可以重写,modelform.按照说明文档添加相应配置报错:File"/package/local/lib/python2.7/site-packages/django/forms/models.py",line153,infields_for_modelforfinsorted(opts.fields+opts.many_to_many):AttributeError:'MetaDict'objecthasnoattribute'fields'django相关文档:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/我理解是mongoengined的字段类型好像和django的的modelForm不匹配,现在也不知道怎么改?谁能告诉我如果让mongoengine中的某个字段添加带格式的字符串(换行,空格等)
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

其实我的问题很简单,之前由于设置的mongo的字符大小,即此属性:StringField(max_length=40)。所有在djangoadmin后台中看到都是input输入框,而我想生成的是textarea。
现在有两个办法:
办法一比较麻烦,重写后台form,已经实现!
classTest(Document):
number=StringField(max_length=10,required=True)
classTest_Form(DocumentForm):
classMeta:
model=Test
fields=('number')
widgets={
'answer':forms.Textarea(attrs={'cols':80,'rows':20}),
}
第二个办法,在model中缺省max_length即可实现相应效果
classTest(Document):
number=StringField()
                            
查看完整回答
反对 回复 2019-04-16
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

stringField中传入regex参数即可,至于换行、空格什么的,就是正则表达式的内容了:
pythonfrommongoengineimport*
classUser(Document):
name=StringField(max_length=40,required=True)
phone=StringField(regex='^1\d{10}$',required=True)
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 317 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号