Child / Table DocType

Up until now we have only seen DocTypes that can have a single value for each field. However, there might be a need for storing multiple records against one record, also known as many-to-one relationships. A Child DocType is doctype which can only be linked to a parent DocType. To make a Child DocType make sure to check Is Child Table while creating the doctype.

Child DocType

To link a Child Doctype to its parent, add another row in Parent Doctype with field type Table and options as Child Table.

Child Table

Child DocType records are directly attached to the parent doc.

>>> person = frappe.get_doc('Person', '000001')
>>> person.as_dict()
{
    'first_name': 'John',
    'last_name': 'Doe',
    'qualifications': [
        {'title': 'Frontend Architect', 'year': '2017'},
        {'title': 'DevOps Engineer', 'year': '2016'},
    ]
}

Child Properties

Child documents have special properties that define their relationship to their parent :

  • parent: name of the parent.
  • parenttype: DocType of the parent.
  • parentfield: Field in the parent that links this child to it.
  • idx: Sequence (row).