dddp/models.py
def get_object_ids(model, meteor_ids):
    """Return all object IDs for the given meteor_ids."""
    if model is ObjectMapping:
        # this doesn't make sense - raise TypeError
        raise TypeError("Can't map ObjectMapping instances through self.")
    # Django model._meta is now public API -> pylint: disable=W0212
    meta = model._meta
    alea_unique_fields = [
        field
        for field in meta.local_fields
        if isinstance(field, AleaIdField) and field.unique and not field.null
    ]
    result = collections.OrderedDict(
        (str(meteor_id), None)
        for meteor_id
        in meteor_ids
    )
    if len(alea_unique_fields) == 1:
        aid = alea_unique_fields[0].name
        query = model.objects.filter(**{
            '%s__in' % aid: meteor_ids,
        }).values_list(aid, 'pk')
    else:
        content_type = ContentType.objects.get_for_model(model)
        query = ObjectMapping.objects.filter(
                content_type=content_type,
                meteor_id__in=meteor_ids,
        ).values_list('meteor_id', 'object_id')
    for meteor_id, object_id in query:
        result[meteor_id] = object_id
    return result
def get_object_ids(model, meteor_ids):
    """Return all object IDs for the given meteor_ids."""
    if model is ObjectMapping:
        # this doesn't make sense - raise TypeError
        raise TypeError("Can't map ObjectMapping instances through self.")
    # Django model._meta is now public API -> pylint: disable=W0212
    meta = model._meta
    alea_unique_fields = [
        field
        for field in meta.local_fields
        if isinstance(field, AleaIdField) and field.unique and not field.null
    ]
    result = collections.OrderedDict(
        (str(meteor_id), None)
        for meteor_id
        in meteor_ids
    )
    if len(alea_unique_fields) == 1:
        aid = alea_unique_fields[0].name
        query = model.objects.filter(**{
            '%s__in' % aid: meteor_ids,
        }).values_list(aid, 'pk')
    else:
        content_type = ContentType.objects.get_for_model(model)
        query = ObjectMapping.objects.filter(
                content_type=content_type,
                meteor_id__in=meteor_ids,
        ).values_list('meteor_id', 'object_id')
    for meteor_id, object_id in query:
        result[meteor_id] = object_id
    return result
Return all object IDs for the given meteor_ids.