gpt4 book ai didi

python - 如何用字符串格式表示 ListProperty(str) 属性?

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:16 25 4
gpt4 key购买 nike

我有一个ListProperty(str):

class Item(db.Model):
tags = db.ListProperty(str)

有时我需要编辑已经写入数据存储的标签,所以我创建了一个编辑页面:

class EditItem(webapp.RequestHandler):
def get(self):
self.response.out.write("""<div>
<form name="submit_form" action="/edititemhandler" method="post">

url: <input type="text" name="url" size=50><br />
<input type="submit" value="submit">
</form></div>""")

这处理表单:

class EditItemHandler(webapp.RequestHandler):
def post(self):
query = Item.all()
query.filter("url =", self.request.get("url"))
e = query.get()
self.response.out.write("""
<form name="submit_form" action="/edititemhandlerhandler" method="post">
tags: <input type="text" name="tags" size=50 value="%s"> <br />
[other values]
...
<input type="submit" value="submit">
</form> """ % (e.tags, .... ))

在我编辑标签后,我尝试将 new_tags 写回数据库:

class EditItemHandlerHandler(webapp.RequestHandler):
def post(self):
query = Item.all()
query.filter("url =", self.request.get("url"))
item = query.get()
logging.info("TAGS %s" % self.request.get("tags"))
new_tags = self.request.get("tags")
item.tags = new_tags
[other items]
...
item.put()

但这给出了

BadValueError('Property %s must be a list' % self.name)
BadValueError: Property tags must be a list

但是 logging.info 显示 self.request.get("tags") 看起来像一个列表:

TAGS [u'speaking', u'glam']

如果我这样做

    item.tags = [new_tags]

new_tags 变成我得到的列表

"[u'presidential', u'glam', u'family']" 

它看起来不像一个列表,而是一个字符串。

那么,如何使用 %s 格式化列表元素,使其保持列表状态?谢谢。

更新

我想我需要在更新之前将标签列表转换为字符串,然后将其转换为列表:

>>> tag_list = [u'formal', u'flag', u'photo']
>>> tag_list_as_string = str(" ".join(tag_list))
>>> tag_list_as_string
'formal flag photo'
>>> #edit tags
>>> tag_list_as_string = 'formal flag photo newtag'
>>> new_tag_list = tag_list_as_string.split(" ")
>>> new_tag_list
['formal', 'flag', 'photo', 'newtag']
>>>

你知道我怎样才能得到带逗号的tag_list_as_string吗,像这样,

'formal, flag, photo'

而不是像这样

'formal flag photo' 

谢谢

最佳答案

tag_list = [u'formal', u'flag', u'photo']
print ", ".join(tag_list)
>> formal, flag, photo

关于python - 如何用字符串格式表示 ListProperty(str) 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4837733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com