Declaring Models

Models are declared by adding a .js model file in the models/doctype folder of the module/app.

Note: A model is called DocType in Frappe.js.


Every model must have a set of fields (these become database columns). All fields must have:

  • fieldname: Column name in database / property name.
  • fieldtype: Data type (see details).
  • label: Display label.
  • required: Is mandatory.
  • hidden: Is hidden.
  • disabled: Is disabled.
module.exports = {
    "naming": "random",
    "name": "ToDo",
    "doctype": "DocType",
    "issingle": 0,
    "fields": [
            "fieldname": "subject",
            "label": "Subject",
            "fieldtype": "Data",
            "reqd": 1
            "fieldname": "description",
            "label": "Description",
            "fieldtype": "Text"
            "fieldname": "status",
            "label": "Status",
            "fieldtype": "Select",
            "options": [
            "default": "Open",
            "reqd": 1