'Returns the value for this BoundField, using the initial value if
the form is not bound or the data otherwise.'

def value(self):

    if (not self.form.is_bound):
        data = self.form.initial.get(self.name, self.field.initial)
        if callable(data):
            data = data()
    else:
        data = self.field.bound_data(self.data, self.form.initial.get(self.name, self.field.initial))
    return self.field.prepare_value(data)
