コード例 #1
0
ファイル: utils.py プロジェクト: vzts/djangae
def get_prepared_db_value(connection, instance, field, raw=False):
    value = (
        getattr(instance, field.attname)
        if raw else field.pre_save(instance, instance._state.adding)
    )

    # If value is None, but there is a default, and the field is
    # not nullable then we should populate it
    # Otherwise thing get hairy when you add new fields to models
    if value is None and field.has_default() and not field.null:
        value = field.get_default()

    if isinstance(value, BaseExpression):
        from djangae.db.backends.appengine.expressions import evaluate_expression

        # We can't actually support F expressions on the datastore, but we can simulate
        # them, evaluating the expression in place.

        # TODO: For saves and updates we should raise a Warning. When evaluated in a filter
        # we should raise an Error
        value = evaluate_expression(value, instance, connection)

    if hasattr(value, "prepare_database_save"):
        value = value.prepare_database_save(field)
    else:
        value = field.get_db_prep_save(
            value,
            connection=connection
        )

    value = connection.ops.value_for_db(value, field)

    return value
コード例 #2
0
ファイル: utils.py プロジェクト: potatolondon/djangae
def get_prepared_db_value(connection, instance, field, raw=False):
    value = getattr(instance, field.attname) if raw else field.pre_save(instance, instance._state.adding)

    if isinstance(value, BaseExpression):
        from djangae.db.backends.appengine.expressions import evaluate_expression

        # We can't actually support F expressions on the datastore, but we can simulate
        # them, evaluating the expression in place.

        # TODO: For saves and updates we should raise a Warning. When evaluated in a filter
        # we should raise an Error
        value = evaluate_expression(value, instance, connection)

    if hasattr(value, "prepare_database_save"):
        value = value.prepare_database_save(field)
    else:
        value = field.get_db_prep_save(value, connection=connection)

    value = connection.ops.value_for_db(value, field)

    return value
コード例 #3
0
def get_prepared_db_value(connection, instance, field, raw=False):
    value = getattr(instance, field.attname) if raw else field.pre_save(
        instance, instance._state.adding)

    if isinstance(value, BaseExpression):
        from djangae.db.backends.appengine.expressions import evaluate_expression

        # We can't actually support F expressions on the datastore, but we can simulate
        # them, evaluating the expression in place.

        #TODO: For saves and updates we should raise a Warning. When evaluated in a filter
        # we should raise an Error
        value = evaluate_expression(value, instance, connection)

    if hasattr(value, "prepare_database_save"):
        value = value.prepare_database_save(field)
    else:
        value = field.get_db_prep_save(value, connection=connection)

    value = connection.ops.value_for_db(value, field)

    return value