A model represents a single business logic or concept. It contains fields and defines the behaviors of the record. Most of the time, each model stores records in a single database table.

The basics:

  • Each model is a Python class that subclasses one of trytond.model.model.Model.
  • Fields are defined as model attributes.
  • Tryton generates the table definitions
  • Tryton provides an API following the active record pattern to access the records.


This example defines a Party model which has a name and a code fields:

from trytond.model import ModelView, ModelSQL, fields
from trytond.pool import Pool

class Party(ModelSQL, ModelView):
    __name__ = ""
    name = fields.Char('Name')
    code = fields.Char('Code')


The class must be registered in the Pool. Model classes are essentially data mappers to records and Model instances are records.

Model attributes define meta-information of the model. They are class attributes starting with an underscore. Some model properties are instance attributes allowing to update them at other places in the framework.