'Deserialize from a JSON representation into a Certificate object.
\'value\' should be either a Certificate instance, or a valid JSON string'

@staticmethod
def deserialize_certificate(course, value):

    for key in ('name', 'description', 'version'):
        if (key not in value):
            raise CertificateValidationError(_("Certificate    dict    {0}    missing    value    key    '{1}'").format(value, key))
    certificate_data = CertificateManager.parse(value)
    CertificateManager.validate(certificate_data)
    certificate_data = CertificateManager.assign_id(course, certificate_data, certificate_data.get('id', None))
    certificate = Certificate(course, certificate_data)
    return certificate
