如何确定PloneFormGen中提供了哪些属性和方法

2024-10-01 22:42:32 发布

您现在位置:Python中文网/ 问答频道 /正文

如何确定PloneFormGen中对象的方法和属性?我想写一些脚本的自定义字段适配器,并想知道什么是可用的。我眼前的问题来自我从网上复制的一些代码: Python script to hide ploneformgen form after user has filled it out. (For Plone-4.3.2-64.)

alreadyInDB = False
savedData = ploneformgen.savefield.getSavedFormInputForEdit()
username = request.AUTHENTICATED_USER.getId()
return {'username': 'No way man!'}
usersInDB = [x.split(',')[1] for x in savedData.split('\r\n') if len(x)>0]

if username in usersInDB:
    alreadyInDB = True

if alreadyInDB:
    return {'username': 'No way man!'}

这是我收到的错误信息。你知道吗

AttributeError:保存字段

我想做的是看看哪些属性和方法是可用的,要么解决这个问题,要么自己写。感谢您的帮助。你知道吗

这就是我们使用的: PloneFormGen 1.7.12版本 产品.PFGExtendedMailAdapter2.4条

Plone 4.3.3(4308) CMF 2.2.7条 佐佩2.13.22 Python 2.7.5(默认值,2018年10月30日,23:45:53)[GCC 4.8.5 20150623(Red Hat 4.8.5-36)] PIL 2.0.0(枕头)


Tags: 方法noreturnif属性ploneusernameploneformgen
3条回答

PloneFormGen对TTW脚本使用受限Python。 您可以在对象上使用dir()或vars()来找出它们提供了什么。 要看到这个,你可能想把它们打印出来。你知道吗

TTW脚本不太好介绍。 也许可以看一下相关的代码,或者使用debug模式来获取表单,然后使用真正的调试器,使用上面相同的方法来查看发生了什么。你知道吗

./bin/实例调试 然后将数据库的根对象设为“app”。你知道吗

获取您的表单可以如此简单:

myform = app.unrestrictedTraverse('Plone/my-form')

获取所有窗体字段对象(子对象):

myform.objectItems()

获取特定字段(包括数据保存适配器对象):

myform.objectIds()
myform['adapter-id']

祝你好运;)

调用对象上的dir(),以返回它拥有的所有可用方法和属性的列表。你知道吗

或者,对函数、类、类方法或类属性使用inspect.getsource(),以返回与其关联的源代码。你知道吗

使用DataFrame对象的示例:

>>> from inspect import getsource
>>> import pandas as pd
>>> df = pd.DataFrame()
>>> dir(df)
    # returns methods and attributes of df
    # which is an instance of a DataFrame object
>>> getsource(pd.DataFrame.head)
    # returns source code for head attribute
    # of a DataFrame object

注意,getsource需要访问实际类的属性/方法(在本例中是pd.DataFrame),而不是该类的实例(在本例中是df)。因此,您可以先使用dir来找出方法/属性,然后使用特定方法/属性上的getsource来查看代码。你知道吗

在代码示例中,ploneformgen是可用的上下文变量,表示form folder对象,savefield表示位于form folder中的save data适配器的ID。你知道吗

您需要添加一个名为savefield的存储数据适配器,或者如果已经存在了,则相应地更改脚本中的ID。你知道吗

相关问题 更多 >

    热门问题