'Get mandatory fields that do not have any values'

def _get_missing_mandatory_fields(self):

    def get_msg(df):
        if (df.fieldtype == u'Table'):
            return u'{}:    {}:    {}'.format(_(u'Error'), _(u'Data    missing    in    table'), _(df.label))
        elif self.parentfield:
            return u'{}:    {}    {}    #{}:    {}:    {}'.format(_(u'Error'), frappe.bold(_(self.doctype)), _(u'Row'), self.idx, _(u'Value    missing    for'), _(df.label))
        else:
            return _(u'Error:    Value    missing    for    {0}:    {1}').format(_(df.parent), _(df.label))
    missing = []
    for df in self.meta.get(u'fields', {u'reqd': (u'=', 1)}):
        if ((self.get(df.fieldname) in (None, [])) or (not strip_html(cstr(self.get(df.fieldname))).strip())):
            missing.append((df.fieldname, get_msg(df)))
    if self.meta.istable:
        for fieldname in (u'parent', u'parenttype'):
            if (not self.get(fieldname)):
                missing.append((fieldname, get_msg(frappe._dict(label=fieldname))))
    return missing
