'This will return a value held by the widget
The value can be held in different locations
1) In the widget itself:
2) In the database: table.survey_complete'

def loadAnswer(self, complete_id, question_id, forceDB=False):

    value = None
    self._store_metadata(question_id)
    if (('answer' in self.question) and (self.question.complete_id == complete_id) and (forceDB == False)):
        value = self.question.answer
    else:
        table = self.atable
        query = ((table.complete_id == complete_id) & (table.question_id == question_id))
        row = current.db(query).select(table.value, limitby=(0, 1)).first()
        if (row is not None):
            value = row.value
            self.question['answer'] = value
        self.question['complete_id'] = complete_id
    return value
