Saltar al contenido principal
Versión: Tryton 6.0 (LTS)

2. Anatomía de un módulo

Tryton 6.0 · curso práctico versionado

Objetivos

  • reconocer cada componente de un módulo
  • registrar un primer modelo en el Pool
  • activar y actualizar el módulo de forma segura

Modelo mental

Este concepto debe entenderse como parte de un sistema transaccional: la interfaz ayuda al usuario, el servidor conserva las reglas y la base persiste el resultado. Un módulo es un paquete Python acompañado de metadatos Tryton. Python define el comportamiento; XML y CSV conectan registros, vistas, acciones, traducciones y permisos.

Práctica guiada

  1. Cree el paquete y tryton.cfg.
  2. Defina una clase ModelSQL y ModelView.
  3. Regístrela desde init.py.
  4. Cargue XML y CSV de acceso respetando el orden de dependencias.
  5. Actualice la lista, active el módulo y pruebe después una actualización.

Ejemplo mínimo

[tryton]
version=6.0.0
depends:
ir
res
xml:
library.xml

# library.py
from trytond.model import ModelSQL, ModelView, fields

class Book(ModelSQL, ModelView):
"Library Book"
__name__ = 'library.book'
title = fields.Char("Title", required=True)

# __init__.py
from trytond.pool import Pool
from . import library

def register():
Pool.register(library.Book, module='library', type_='model')

Cómo leer el ejemplo

El nombre técnico del modelo es su identidad estable en base de datos y API; la clase es su identidad Python. El registro indica al Pool qué clases componen el modelo final.

Ejercicio

Agregue un campo ISBN, actualice la base e inspeccione el modelo desde una prueba sin editar SQL manualmente.

Realice el ejercicio primero con un caso mínimo, después agregue un caso inválido y convierta ambos en pruebas repetibles.

Resultado verificable

El módulo se activa, crea su tabla y se actualiza sin perder el primer libro.

Errores frecuentes

  • olvidar importaciones relativas
  • cargar XML antes que los registros referenciados
  • renombrar identificadores XML después de publicar
  • declarar dependencias innecesarias

Criterio para avanzar

  • Puedo explicar la diferencia entre los conceptos sin mirar el código.
  • El caso válido y el inválido tienen pruebas.
  • Probé con un usuario sin privilegios administrativos.
  • Sé cómo actualizar y cómo recuperar la base de entrenamiento.

Versión y referencias

La serie 6.0 requiere como mínimo Python 3.6 según los metadatos oficiales. Esta rama oficial todavía conserva metadatos históricos en setup.py; mantenga compatibilidad con la serie, pero prepare sus paquetes personalizados para la construcción estándar mediante python -m build. No confunda ese mínimo histórico con la versión de Python que haya certificado su organización.

Esta edición fija ejemplos y dependencias en la serie 6.0. Consulte el tutorial oficial 6.0, la API del servidor y el código de esa rama antes de trasladar el patrón a producción.