python - 序列字段 Odoo
问题描述
我想添加一个"name"
具有这种语法的序列字段:"Alerte/date_creation/000x"
它会像:
"Alerte/14-07-2021/0001"
"Alerte/14-07-2021/0002"...
这是我的python代码:
class StockAlert(models.Model):
_name = "stock.alert"
_inherit = ['mail.thread', 'mail.activity.mixin']
_rec_name = "name"
name = fields.Char(string="Nom",default="New")
date_creation = fields.Date("Date de création",default=datetime.now().strftime('%Y-%m-%d'))```
解决方案
两种可能性通过您自己的代码(坏主意)或使用 ir.sequence 管理自己。
在这两种情况下,您将使用方法 create
自己管理
@api.model
def create(self, values):
res= super(YourClass, self).create(values)
res.write({name : f'Alerte/{current_date}/{res.id}'})
return res
此逻辑有效,但您使用 2 个请求来执行此 1 个插入和 1 个更新。
使用 ir.sequence
首先在 xml 文件中创建一个 ir.sequence:
<record id="seq_stock_alert" model="ir.sequence">
<field name="name">Stock alert sequence</field>
<field name="code">seq.stock.alert</field>
<field name="prefix">Alerte/%(y)s-%(month)s-%(day)s/</field>
<field name="padding">3</field>
</record>
接下来在你的 python
@api.model
def create(self, values):
values['name'] = self.env['ir.sequence'].next_by_code('seq.stock.alert') or _('New')
return super(YourClass, self).create(values)
推荐阅读
- javascript - 即使我为站点启用了位置,Microsoft Edge 仍然显示消息“用户拒绝地理定位请求”
- angular - 将数据注入Angular 8中动态创建的路由
- scala - scala spark从hdfs集群读取文件
- javascript - 使用 setinterval 和 clearinterval 在 mouseleave 上开始动画并在 mouseenter 上停止
- git - 在本地克隆 VSTS 存储库时,面临 SSL 证书问题
- javascript - jQuery POST 请求后的空正文
- linux - 箭头键在linux上表现异常?
- python - 如何在python中显示条形图
- objective-c - Mac Objective-C 将 HFS 样式路径转换为 POSIX 路径
- left-join - R:为什么 st_join 给出无效时间错误?