2013-07-07 110 views
0

第一:我正在運行Plonce Plone的4.3(4305)與敏捷內容類型實例2.0.7敏捷內容類型DateTime的問題及如何修改內容類型值的所有的

我的方法是編寫一個Python腳本(通過ZMI增加)它可以創建這裏描述的方法invokeFactory(...)typestool.constructContent(..)我靈巧的內容類型:http://plone.org/documentation/kb/add-content-programmatically(我已經寫了兩個劇本里面做同樣的任務,但使用不同的方法 - 學習之用)

一切正常,除了當我嘗試添加一個DateTime對象到上述兩個方法的構造函數來創建我的內容類型。日期字段strangly只更新日期和年份值。由於進口內Python庫的限制,我堅持(我目前的知識),此代碼:

d = DateTime('12/12/2013') 

我的腳本返回完成後的日期對象,看起來像這樣:

2013/12/12 00:00:00 GMT+1 

我已經寫了另一個小腳本,它在施工後輸出Date值,它給了我相同的結果(這似乎是正確的)。得到的內容類型具有正確更新其日和年字段,但當月值停留在一月和提高在查看以下類型錯誤:

TypeError: int() argument must be a string or a number, not 'instancemethod' 

我可以通過手動編輯月份值修正這個,不正是我想。我認爲這是我的DateTime對象的一個​​小問題,但此時我的想法已經不多了(整體文檔看起來有點分散)。我已經嘗試過DateTime構造函數內的各種日期格式,但沒有運氣。

我也不知道如何修改我的對象自定義字段值。 Plone似乎只能提供setTitle()setDescription()方法。也許有人有一個很好的提示。

謝了你所有的提前, 問候

回答

0

不能確定的日期時間問題,但檢查出索引,索引和自定義索引找出設置標題和描述。

設置你的標題,例如

@indexer(IFormName) 
def titleIndexer(obj): 
    return obj.valueFromForm 
grok.global_adapter(titleIndexer, name="Title") 
0

據我所知,問題是,靈巧類型DateTime字段需要一個DateTime對象,而不是一個DateTime對象。

在invokeFactory,你應該通過一個DateTime對象,而不是一個DateTime對象的

>>>date=datetime.datetime(2011,1,1) 
>>>myobj=target.invokeFactory(type_name="content_type_name", id=id, date=date) 

>>from DateTime import DateTime 
>>DateTime().month() 
7 
>>from datetime import datetime 
>>datetime.now().month 
7 
>>datetime.now().month() 
TypeError: 'int' object is not callable 

>>> myobj.date 
datetime.datetime(2013, 7, 26, 0, 0) 
>>> myobj.date.month 
7 
>>> myobj.date.month() 
TypeError: 'int' object is not callable 
相關問題