使用Mongoengine并尝试形成标签云。对于每个项目,我想附加一个或多个标签。这里使用了类似标签的东西(在每个问题的下面)。使用Mongoengine添加和更新ListField
在这里搜索和阅读很多帖子后,我仍然无法向ListField添加新条目的正确方法,或者如何替换它们。
class Item(Document):
tags = ListField(StringField(max_length=300))
我试图通过使用表单并收集发布的结果来推送一个或多个新标签。在我的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)
当试图推它,它失败:
ValidationError(简介:5185505b73ea128e878f4e82)(仅限列表和 元组可以被用在列表字段:['tags'])
很明显,我使用了错误的类型,但我失去了如何解决这个问题。 奇怪的是,由于某种原因,数据被附加到记录,但..(贴“测试”,并刷新浏览器)
“标签”:“测试”,“测试”]}
可以告诉我一个小例子:如何处理发布的字符串(来自HTML表单)并将其正确推入ListField(以及如何将其全部替换)。
谢谢!
谢谢罗斯。尽管如此,它仍然给我带来了ValidationError(只有列表和元组)。从表单文章接收数据时,如何将正确的格式输入到表单中? – user2391564
将发布数据转换为列表或元组。 – Ross
即使你的例子给我的验证错误。使用x = request.POST.getlist('tags'),它也应该给出一个列表,同样的错误。谷歌搜索几个小时后,试图分裂等,我真的看不出原因。同时我从0.8.0RC1升级到0.8.0RC4,但没有解决。任何额外的积分将非常感激!爱Mongoengine,但学习曲线让我回想一下:) – user2391564