necesito saber con ejemplos como delcarar campos en odoo y cada una de las propiedades a a;la hora de decalrar que puedo poner version de odoo 14
En Odoo 14, al crear o modificar un módulo, se definen campos en las clases de modelo. Los campos se declaran utilizando la clase `fields` que se encuentra en el módulo `odoo.models`. Cada campo puede tener varias propiedades que afectan su comportamiento.
A continuación, se muestran ejemplos de cómo declarar diferentes tipos de campos y algunas de las propiedades más comunes.
### Ejemplo de Modelo
Supongamos que quieres crear un modelo llamado `res.partner` (que ya existe en Odoo) y añadir algunos campos personalizados. Aquí tienes un ejemplo de cómo podrías hacerlo:
```python
from odoo import models, fields
class ResPartner(models.Model):
_inherit = 'res.partner' # Estamos heredando el modelo existente
# Declaración de un campo Char
custom_field_char = fields.Char(string='Campo de Texto', required=True, help='Este es un campo de texto simple.')
# Declaración de un campo Integer
custom_field_integer = fields.Integer(string='Campo Entero', default=0, help='Este es un campo para números enteros.')
# Declaración de un campo Float
custom_field_float = fields.Float(string='Campo Flotante', digits=(6, 2), help='Este es un campo para números con decimales.')
# Declaración de un campo Boolean
custom_field_boolean = fields.Boolean(string='Campo Booleano', default=False, help='Este es un campo que puede ser verdadero o falso.')
# Declaración de un campo Date
custom_field_date = fields.Date(string='Campo de Fecha', help='Este es un campo para seleccionar una fecha.')
# Declaración de un campo Many2one
related_product_id = fields.Many2one('product.product', string='Producto Relacionado', help='Producto relacionado con el socio.')
# Declaración de un campo One2many
sale_order_line_ids = fields.One2many('sale.order.line', 'partner_id', string='Líneas de pedido', help='Todas las líneas de pedido del socio.')
# Declaración de un campo Many2many
category_ids = fields.Many2many('res.partner.category', string='Categorías', help='Categorías asignadas al socio.')
```
### Propiedades Comunes de los Campos
1. **string**: La etiqueta o el nombre del campo que se mostrará en la interfaz de usuario.
2. **required**: Si se establece como `True`, el campo será obligatorio al guardar el formulario.
3. **default**: Valor predeterminado que tomará el campo al crear un nuevo registro.
4. **help**: Texto de ayuda que aparecerá al lado del campo en la interfaz de usuario.
5. **digits**: Define la precisión de un campo de tipo Float. Se define como (total, decimal).
6. ** relation**: Para campos Many2one, One2many y Many2many, se usa para definir la relación con otros modelos, indicando el nombre del modelo relacionado.
### Tipos de Campos Comunes en Odoo
- **fields.Char**: Campo de texto.
- **fields.Integer**: Campo para números enteros.
- **fields.Float**: Campo para números con decimales.
- **fields.Boolean**: Campo que puede ser verdadero o falso.
- **fields.Date**: Campo para seleccionar fechas.
- **fields.Datetime**: Campo para fechas y horas.
- **fields.Time**: Campo para seleccionar horas.
- **fields.Text**: Campo para texto largo.
- **fields.Binary**: Para campos que contienen datos binarios (por ejemplo, archivos).
- **fields.Many2one**: Relación con un solo registro en otro modelo.
- **fields.One2many**: Relación inversa a Many2one (un registro puede tener muchos relacionados).
- **fields.Many2many**: Relación de muchos a muchos entre registros de modelos.
Con estos ejemplos y detalles, deberías poder declarar campos adecuadamente en Odoo 14 y entender algunas de las propiedades que puedes utilizar al hacerlo.


