当我在查找结果中使用 plone.api content.create 时,结果总是空的
When I use plone.api content.create in for find results ever empty
我使用 plone.api
创建一个脚本来将一批 PDF 上传到一个文件夹中,关于我将每个 PDF 放在哪个文件夹的信息来自 csv。我的问题是..
如果 for
中的下一个值是同一年,那是在 for
的最后一次交互中创建的,var yearBrain
的输出再次为空。当脚本完成后,在 plone 中我将有很多文件夹,标题为 2015
和 ids 2015
, 2015-1
...
for i in csv:
yearBrain = api.content.find(context=container, SearchableText=str(i[1]))
if solidData(yearBrain):
#solidData returns if exist infor and year have 4 digits
print 'if true, insert a PDF into a folder'
else:
#If solidData false, yearBrain results empty, so create a folder
container = api.content.create(type='Folder', title=unicode(str(i[1]), 'utf-8'), container=container)
transaction.commit()
我认为 api.content.find
找不到最近创建的文件夹。
我是怎么解决这个问题的?
[更新 - 作品]
if pdf_tipodoc:
if pdf_tipodoc == 'PROCESSO':
valor = splitProcesso(pdf_nprocesso)
# valor returns a list with two elements like ['234', '2016']
container = portal[plone_site_pasta][processos]
# Container is: <ATFolder at /intranet/ged/processos>
print container.objectIds() #look what have inside!
if valor[1] in container.objectIds():
print 'Folder already created! Commit PDF inside'
else:
container = api.content.create(type='Folder', title=valor[1], container=container)
transaction.commit()
不要为此使用 api.content.find:您不需要搜索来查找文件夹中具有已知 ID 的项目。
如果 i[1]
是您当前的年份(我猜),请尝试以下内容:
if str(i[1]) in container.objectIds():
# year folder already exists
我使用 plone.api
创建一个脚本来将一批 PDF 上传到一个文件夹中,关于我将每个 PDF 放在哪个文件夹的信息来自 csv。我的问题是..
如果 for
中的下一个值是同一年,那是在 for
的最后一次交互中创建的,var yearBrain
的输出再次为空。当脚本完成后,在 plone 中我将有很多文件夹,标题为 2015
和 ids 2015
, 2015-1
...
for i in csv:
yearBrain = api.content.find(context=container, SearchableText=str(i[1]))
if solidData(yearBrain):
#solidData returns if exist infor and year have 4 digits
print 'if true, insert a PDF into a folder'
else:
#If solidData false, yearBrain results empty, so create a folder
container = api.content.create(type='Folder', title=unicode(str(i[1]), 'utf-8'), container=container)
transaction.commit()
我认为 api.content.find
找不到最近创建的文件夹。
我是怎么解决这个问题的?
[更新 - 作品]
if pdf_tipodoc:
if pdf_tipodoc == 'PROCESSO':
valor = splitProcesso(pdf_nprocesso)
# valor returns a list with two elements like ['234', '2016']
container = portal[plone_site_pasta][processos]
# Container is: <ATFolder at /intranet/ged/processos>
print container.objectIds() #look what have inside!
if valor[1] in container.objectIds():
print 'Folder already created! Commit PDF inside'
else:
container = api.content.create(type='Folder', title=valor[1], container=container)
transaction.commit()
不要为此使用 api.content.find:您不需要搜索来查找文件夹中具有已知 ID 的项目。
如果 i[1]
是您当前的年份(我猜),请尝试以下内容:
if str(i[1]) in container.objectIds():
# year folder already exists