小编use*_*564的帖子

使用Mongoengine添加和更新ListField

使用Mongoengine并尝试形成标签云.对于每个项目,我想附加一个或多个标签.这里使用类似标签的东西(在每个问题下面).

在这里搜索和阅读了很多帖子后,我仍然无法正确地将新条目添加到ListField,或者如何替换它们.

class Item(Document):
    tags = ListField(StringField(max_length=300))
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过使用表单推送一个或多个新标签并收集发布的结果.在我的views.py中,我有以下检查:

if 'tags' in request.POST and request.POST['tags'] <> '':
   for Tag in request.POST.getlist('tags'):
       ItemData.update(push__tags__S__tags=Tag)
Run Code Online (Sandbox Code Playgroud)

尝试推送时,它失败了:

ValidationError(配置文件:5185505b73ea128e878f4e82)(列表字段中只能使用列表和元组:['tags'])

显然我使用的是错误的类型,但我迷失了如何解决这个问题.奇怪的是,由于某种原因,数据被附加到记录中..(发布"测试"和刷新浏览器)

"tags":["test","test"]}

可以向我展示一个小例子如何处理发布的字符串(来自HTML表单)并将其正确地推送到ListField(以及如何将它们全部替换).

谢谢!

listfield mongoengine

6
推荐指数
1
解决办法
1万
查看次数

用mongoengine保存DateTimeField

使用Django框架(1.3.1)和Mongoengine。

尝试保存发布的字段(截止日期)时,它会以

ValidationError(无法解析日期“ 2013-12-31”:['DueDate'])

但是,通过datetime.datetime.now()它保存日期时效果很好。搜索示例后,我没有选择了。

我的代码的相关部分(使用带有文本输入标签的普通HTML表单):

views.py

goal.DueDate = request.POST['duedate']
goal.save()
Run Code Online (Sandbox Code Playgroud)

models.py

class Goal(Document):
    DueDate = DateTimeField()
    last_update = DateTimeField(required=True)
Run Code Online (Sandbox Code Playgroud)

任何的想法?

更新(目前无法回答自己):

确定..找到了解决方案。键入它,显然提供了新的见解。

Goal.DueDate = datetime.datetime.strptime(request.POST ['duedate'],'%Y-%m-%d')

django mongoengine

5
推荐指数
1
解决办法
2405
查看次数

标签 统计

mongoengine ×2

django ×1

listfield ×1