当我尝试更新某些表中的信息时遇到了一些问题。例如,我有这个表:
class Channel(rdb.Model):
rdb.metadata(metadata)
rdb.tablename("channels")
id = Column("id", Integer, primary_key=True)
title = Column("title", String(100))
hash = Column("hash", String(50))
runtime = Column("runtime", Float)
items = relationship(MediaItem, secondary="channel_items", order_by=MediaItem.position, backref="channels")
Run Code Online (Sandbox Code Playgroud)
我有这个代码:
def insertXML(channels, strXml):
channel = Channel()
session = rdb.Session()
result = ""
channel.fromXML(strXml)
fillChannelTemplate(channel, channels)
rChannel = session.query(Channel).get(channel.id)
for chan in channels:
if rChannel.id == channel.id:
rChannel.runtime = channel.runtime
for item in channel.items:
if item.id == 0:
rChannel.items.append(item)
Run Code Online (Sandbox Code Playgroud)
当我执行“rChannel.items.append(item)”时,出现此错误:
"FlushError: New instance Channel at 0xaf6e48c with identity key
zeppelinlib.channel.ChannelTest.Channel , (152,) …Run Code Online (Sandbox Code Playgroud) 我将JSON数据存储在服务器端的HTML隐藏字段中.然后我想在客户端使用Javascript和JQuery检索该数据.问题是我得到一个JSON字符串而不是JSON对象.
这是我在服务器端的代码:
<form id="data" style="display: none;">
<input id="channels" type="hidden" tal:attributes="value python: view.context['ChannelManager'].toJSON(view.channels.values())" />
<input id="mediaGroups" type="hidden" tal:attributes="value python: view.context['MediaGroupManager'].toJSON(view.mediaGroups.values())" />
</form>
Run Code Online (Sandbox Code Playgroud)
这是我在客户端的代码:
copy.channelList = new ChannelTest();
copy.channelList.fromJSONObjectAll($("#data input[id=channels]").val())
Run Code Online (Sandbox Code Playgroud)
所以我从这里得到JSON字符串而不是JSON对象,$("#data input [id = channels]").val().
如何在不转换JSON对象中的JSON字符串的情况下获取JSON对象?
提前致谢!