Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
3 Відповіді
14311 Переглядів

Odoo V11 

I want to set time as default in ir.cron object for currency update

I am getting error like this when I try loading the module data .

odoo.tools.convert.ParseError: "<class 'TypeError'>: "'module' object is not callable" while evaluating' datetime.combine(datetime.now().date() + timedelta(days=1), time(hour=15,minute=40))'"

How can I solve this problem ? 

My data code:

<record model="ir.cron" id="ir_cron_currency_update_every_day">
        <field name="name">Currency Rate Update</field>
        <field name="interval_number">1</field>
        <field name="interval_type">days</field><!-- it s every day -->
        <field name="numbercall">-1</field>
        <field name="state">code</field>
        <field name="doall" eval="False"/>
        <field name="model_id" ref="currency_rate_update.model_currency_rate_update_service"/>
        <field name="nextcall" eval="datetime.combine(datetime.now().date() + timedelta(days=1),time(hour=15,minute=40))"/>
        <field name="code">model._run_currency_update()</field>
</record>

Аватар
Відмінити
Найкраща відповідь

Hi,

Try this code,

<record model="ir.cron" id="ir_cron_currency_update_every_day">
<field name="name">Currency Rate Update</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field><!-- it s every day -->
<field name="numbercall">-1</field>
<field name="state">code</field>
<field name="doall" eval="False"/>
<field name="model_id" ref="currency_rate_update.model_currency_rate_update_service"/>
<field name="nextcall" eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 15:40:%S')" />
<field name="code">model._run_currency_update()</field>
</record>


Also, make sure that whether there is a need to set the next execution time as the next execution time will get set automatically based on the given interval number and interval type.


Thanks

Аватар
Відмінити
Автор

Thank you so much :) I have tried this code and it worked. But, I had to use 'datetime.now ()' instead of 'DateTime.now ()'

Найкраща відповідь

This error statement TypeError: 'module' object is not callable is raised as you are being confused about the Class name and Module name. The problem is in the import line . You are importing a module, not a class. This happend because the module name and class name have the same name .

If you have a class "MyClass" in a file called "MyClass.py" , then you should import :

 from MyClass import MyClass

In Python , a script is a module, whose name is determined by the filename . So when you start out your file MyClass.py with import MyClass you are creating a loop in the module structure.

http://net-informations.com/python/iq/typeerror.htm

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
2
лют. 24
15403
1
груд. 22
4920
2
груд. 22
14337
2
черв. 22
6172
2
черв. 22
4571