def _create_models_for_relation_step(self, rel_model_name,
                                     rel_key, rel_value, model):
    """
    Create a new model linked to the given model.

    Syntax:

        And `model` with `field` "`value`" has `new model` in the database:

    Example:

    .. code-block:: gherkin

        And project with name "Ball Project" has goals in the database:
            | description                             |
            | To have fun playing with balls of twine |
    """

    model = get_model(model)
    lookup = {rel_key: rel_value}
    rel_model = get_model(rel_model_name).objects.get(**lookup)

    data = guess_types(self.hashes)

    for hash_ in data:
        hash_['%s' % rel_model_name] = rel_model

    try:
        func = _WRITE_MODEL[model]
    except KeyError:
        func = partial(write_models, model)

    func(data, None)