def generate_form(model, only=None, meta=None):
    """
    Generate WTForm based on SQLAlchemy table
    :param model: SQLAlchemy sa.Table
    :param only: list or set of columns that should be used in final form
    :param meta: Meta class with settings for form
    :return: WTForm object
    """
    fields = OrderedDict()
    if meta:
        fields['Meta'] = meta

    for name, column in model.__dict__['columns'].items():
        if only:
            if not name in only:
                continue
        if not isinstance(column, Column):
            continue
        fields[name] = TYPE_MAP[column.type.__class__](
            name, render_kw={'placeholder': name}
        )
    form = type(
        'Add{}Form'.format(model.name.capitalize()),
        (Form,),
        fields
    )
    return form