Nombrando y Asociando DocType
Vamos a crear otro DocType y guardarlo:
- Library Member (First Name, Last Name, Email Address, Phone, Address)
Nombrando DocTypes
Los DocTypes pueden ser nombrados en diferentes maneras:
- Basados en un campo
- Basados en una serie
- A traves del controlador (vía código)
- Con un promt
Esto puede ser seteado a traves del campo Autoname. Para el controlador, dejar en blanco.
Search Fields: Un DocType puede ser nombrado por serie pero seguir teniendo la necesidad de ser buscado por nombre. En nuestro caso, el Article va ser buscado por el título o el nombre del autor. Por lo que vamos a poner esos campos en el campo de search.
Campo de Enlace y Campo Select
Las claves foraneas son específicadas en Frappe como campos Link (Enlace). El DocType debe ser mencionado en el area de texto de Options.
En nuestro ejemplo, en el DocType de Library Transaction,tenemos que enlazar los dos DocTypes de Library Member and the Article.
Nota: Recuerda que los campos de Enlace no son automáticamente establecidos como claves foraneas en la base de datos MariaDB, porque esto crearía un indice en la columna. Las validaciones de claves foraneas son realizadas por el Framework.
Por campos de tipo Select, como mencionamos antes, agrega varias opciones en la caja de texto Options, cada una en una nueva linea.
De manera similar continua haciendo los otros modelos.
Valores enlazados
Un patrón estandar es que cuando seleccionas un ID, dice Library Member en Library Membership, entonces el nombre y apellido del miembro deberian ser copiados en campos relevantes de el Doctype Library Membership Transaction.
Para hacer esto, podemos usar campos de solo lectura y en opciones, podemos especificar el nombre del link (enlace) y el campo o propiedad que deseas obtener. Para este ejempo en Member First Name podemos especificar library_member.first_name
.
Completar los modelos
En la misma forma, puedes completar todos los modelos, todos los campos deben verse de esta manera
Article
Library Member
Library Membership
Library Transaction
Asegurate de dar permiso a Librarian en cada DocType