使用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=Testfields=('number')widgets={'answer':forms.Textarea(attrs={'cols':80,'rows':20}),}第二个办法,在model中缺省max_length即可实现相应效果classTest(Document):number=StringField()
慕码人8056858
TA贡献1803条经验 获得超6个赞
stringField中传入regex参数即可,至于换行、空格什么的,就是正则表达式的内容了:pythonfrommongoengineimport*classUser(Document):name=StringField(max_length=40,required=True)phone=StringField(regex='^1\d{10}$',required=True)
添加回答
举报
0/150
提交
取消
