Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
5383 Lượt xem

I wanna show only one of these three in Odoo but I seem to not do it. I have tried importing datetime module and doing datetime.now().year but Odoo isn't recognizing it. How do I solve this?


Many thanks!

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

By context i think it is a function call problem. To import correctly the datetime module you should do this:


from datetime import datetime

current_year = datetime.now().year
print(current_year)
Ảnh đại diện
Huỷ bỏ
Tác giả

But then it says "field current_year doesn't exist". I have another option where I could just strip each piece from Odoo's datetime field but to me looks performance expensive doing stripping where I may have easier ways.

Ok. Your issue is clearer now. Try this:

from datetime import datetime
from odoo import models, fields

class MyModel(models.Model):
_name = 'my.model'

current_year = fields.Integer(string='Current Year', default=lambda self: datetime.now().year)

Tác giả

Big UP Bro! It really worked! But I have this problem that year 2023 is with a comma as 2,023. I have searched and tried like "widget='integer' " and also added the format options but it didn't work too. How do I solve this?

You can edit the field to Char. Try this:

current_year = fields.Char(string='Current Year', default=lambda self: datetime.now().year)

Tác giả

Bless you my friend! It worked like a charm!

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 4 22
2728
3
thg 11 23
17417
3
thg 11 24
25093
1
thg 4 23
6133
2
thg 12 22
6878