关于odoo博客项目的一份部分模型层的代码解释教学

# -*- coding: utf-8 -*-
# 手机:13584935775
# Copyright 昆山一百计算机有限公司 2012-2025 Amos
# 日期:2024/5/6


from datetime import datetime, timedelta
from functools import partial
from itertools import groupby
from odoo import api, fields, models, tools, SUPERUSER_ID, _
from odoo.exceptions import UserError, ValidationError
from odoo.tools.misc import formatLang
from odoo.osv import expression
from odoo.tools import float_is_zero, float_compare
from werkzeug.urls import url_encode


class xodoo_blog(models.Model):
    _name = "xodoo.blog"
    _description = "博客"
    _order = 'id desc'

    name = fields.Char(string='标题', )
    seo_description = fields.Char(string='描述', )
    seo_keywords = fields.Char(string='关键字', )
    user_id = fields.Many2one('res.users', string='作者', index=True,default=lambda self: self.env.user)
    category_id = fields.Many2one('xodoo.blog.category', string='分类', index=True)
    sequence = fields.Integer(string='排序', default=10)
    click = fields.Integer(string='点击', default=1)
    content = fields.Html(string='正文')
    top = fields.Boolean(default=True, string='顶置')
    publish = fields.Boolean(default=False, string='是否发布')
    active = fields.Boolean(default=True, string='归档')
    image = fields.Image('图片', help="图片尺寸801*534",copy=False, attachment=True, max_width=1024, max_height=1024)

    tag_ids = fields.Many2many('xodoo.blog.tag', 'xodoo_blog_xodoo_blog_tag_rel', 'blog_id', 'tag_id')




    def button_publish(self):
        """
        是否发布
        """
        for record in self:
            record.publish = not record.publish

段代码定义了一个名为xodoo_blog的Odoo模型,用于表示博客文章。逐一解释一下:

  • _name = "xodoo.blog": 定义了模型的名称,这将用作数据库表名和模型的标识符。
  • _description = "博客": 为模型添加了描述信息,用于标识模型的用途。
  • _order = 'id desc': 指定了默认的排序顺序,按照id字段的降序排列。
  • name = fields.Char(string='标题'): 定义了一个Char类型的字段,用于存储博客文章的标题。
  • seo_description = fields.Char(string='描述'): 定义了一个Char类型的字段,用于存储博客文章的描述信息。
  • seo_keywords = fields.Char(string='关键字'): 定义了一个Char类型的字段,用于存储博客文章的关键字信息。
  • user_id = fields.Many2one('res.users', string='作者', index=True, default=lambda self: self.env.user): 定义了一个Many2one类型的字段,用于关联到res.users模型,表示博客文章的作者。
  • category_id = fields.Many2one('xodoo.blog.category', string='分类', index=True): 定义了一个Many2one类型的字段,用于关联到xodoo.blog.category模型,表示博客文章的分类。
  • sequence = fields.Integer(string='排序', default=10): 定义了一个Integer类型的字段,用于存储博客文章的排序值。
  • click = fields.Integer(string='点击', default=1): 定义了一个Integer类型的字段,用于存储博客文章的点击次数。
  • content = fields.Html(string='正文'): 定义了一个Html类型的字段,用于存储博客文章的正文内容。
  • top = fields.Boolean(default=True, string='顶置'): 定义了一个Boolean类型的字段,表示是否将博客文章置顶。
  • publish = fields.Boolean(default=False, string='是否发布'): 定义了一个Boolean类型的字段,表示博客文章是否已发布。
  • active = fields.Boolean(default=True, string='归档'): 定义了一个Boolean类型的字段,表示博客文章是否处于归档状态。
  • image = fields.Image('图片', help="图片尺寸801*534", copy=False, attachment=True, max_width=1024, max_height=1024): 定义了一个Image类型的字段,用于存储博客文章的图片。
  • tag_ids = fields.Many2many('xodoo.blog.tag', 'xodoo_blog_xodoo_blog_tag_rel', 'blog_id', 'tag_id'): 定义了一个Many2many类型的字段,用于关联到xodoo.blog.tag模型,表示博客文章的标签。

接下来是一个方法:

  • def button_publish(self): 定义了一个方法,用于切换博客文章的发布状态。当调用该方法时,会将publish字段的值取反,即如果原来是False,则变为True,反之亦然。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

odoo实施

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值