📜  odoo int field (1)

📅  最后修改于: 2023-12-03 14:44:52.220000             🧑  作者: Mango

Odoo Int Field

Odoo is an open-source ERP system that comes with a rich set of built-in field types to help developers create custom applications with ease. One of the most commonly used field types is the int field, which allows you to store integer values in your database.

Definition

The int field in Odoo is defined as follows:

from odoo import models, fields

class MyModel(models.Model):
    my_int_field = fields.Integer(string="My Integer Field")

Here, we define a new model called MyModel with a single field called my_int_field, which is an Integer field. We can also specify a label for our field using the string parameter.

Usage

Once we have defined our int field, we can use it just like any other field in our model. For example, we can set its value like this:

mymodel = MyModel.create({'my_int_field': 42})

We can also retrieve the value of our int field just like any other field:

print(mymodel.my_int_field)
Validation

By default, the int field in Odoo will accept any integer value. However, we can use validators to ensure that the value entered by the user satisfies our requirements. For example, we can ensure that the value is always positive by adding a validator:

from odoo.exceptions import ValidationError

class MyModel(models.Model):
    my_int_field = fields.Integer(string="My Integer Field", validate_non_negative=True)

    @api.constrains('my_int_field')
    def _check_positive(self):
        for record in self:
            if record.my_int_field < 0:
                raise ValidationError("Value must be positive")

Here, we add a validate_non_negative parameter to our Integer field, which tells Odoo to automatically validate that the entered value is not negative. We also add a custom validator using the @api.constrains decorator, which checks that the entered value is positive and raises a ValidationError if not.

Conclusion

The int field in Odoo is a powerful and flexible tool for storing integer values in your database. Whether you need to store counts, quantities, or any other kind of integer data, the int field is the perfect choice for your needs.