2017-01-07 2 views
1

Я использую odoo v8 и Я пытался создать домен на поле many2one основе date`создание домена на основе даты odoo v8

date_now=fields.Date(default=datetime.now()) 
fmt = '%Y-%m-%d %H:%M:%S' 
lot=fields.Many2one('stock.production.lot','lot',domain[('life_date','>=',datetime.strptime(str(datetime.now()), '%Y-%m-%d %H:%M:%S'))]) 

Я пытался много комбинаций, но никто не работает!

может любой, пожалуйста, покажите мне правильный путь, чтобы создать домен, где я могу сравнить life_date и текущую дату (или date_now)

заранее спасибо.

ответ

0

хорошо я наконец сделал это есть функция называется Защиту on_change_product() внутри него я поставил

date_now = None if not date_now: date_now = fields.Date.today()

res['domain'] = {'lot': [('product_id', '=', prod.id), 
        ('life_date', '>', date_now)]} 
1

использование атрибута

domain=[(your domain filter)] 

в определении поля, что будет делать для вас.

+0

притом уверен, вот что им пытаются сделать домен = [('life_date', '> =', datetime.strptime (str (datetime.now()), '% Y-% m-% d% H:% M:% S'))]) но я получил такие как: datetime.strptime (str (datetime.now()), '% Y-% m-% d% H:% M:% S'))]) odoo | Файл «/usr/lib/python2.7/_strptime.py», строка 328, в _strptime odoo | data_string [found.end():]) odoo | ValueError: неотвержденные данные остаются: .764757 –

+0

Просто используйте объект datetime в фильтре домена, не преобразовывая его в строку. –

+0

thnx для быстрых ответов, кстати =) ,, когда я dnt конвертирую его, я получил erro, что мой объект должен быть строкой может быть, если вы напишете мне, что я должен писать на домен, мне очень помогло бы. Im не уверен, что мы пишем домен одинаково. –