Overredieg jinja2 для настраиваемого представления на шаблонах django

hi Я хочу переопределить html.py в venv/Lib/coreschema/encodings/html.py. вот метод, который нужно переопределить:

def determine_html_template(schema):
    if isinstance(schema, Array):
        if schema.unique_items and isinstance(schema.items, Enum):
            # Actually only for *unordered* input
            return '/bootstrap3/inputs/select_multiple.html'
        # TODO: Comma seperated inputs
        return 'bootstrap3/inputs/textarea.html'
    elif isinstance(schema, Object):
        # TODO: Fieldsets
        return 'bootstrap3/inputs/textarea.html'
    elif isinstance(schema, Number):
        return 'bootstrap3/inputs/input.html'
    elif isinstance(schema, Boolean):
        # TODO: nullable boolean
        return 'bootstrap3/inputs/checkbox.html'
    elif isinstance(schema, Enum):
        # TODO: display values
        return 'bootstrap3/inputs/select.html'
    # String:
    if schema.format == 'textarea':
        return 'bootstrap3/inputs/textarea.html'
    return 'bootstrap3/inputs/input.html'

и эти строки :

if isinstance(schema, Array):
    if schema.unique_items and isinstance(schema.items, Enum):
        # Actually only for *unordered* input
        return '/bootstrap3/inputs/select_multiple.html'

Я хочу изменить select_multiple.html на custom_select_multiple.html в папке templates в каталоге проекта. Также это решение требует переопределения некоторых файлов, что я и сделал. Теперь он не может понять мой пользовательский файл, потому что в этом методе:

env = jinja2.Environment(loader=jinja2.PackageLoader('coreschema', 'templates'))


def render_to_form(schema):
    template = env.get_template('form.html')

    return template.render({
        'parent': schema,
        'determine_html_template': determine_html_template,
        'get_textarea_value': get_textarea_value,
        'get_attrs': get_attrs
    })

использовал PackageLoader и jinja2 не может понять, где находится мой файл. и как мне теперь решить эту проблему.

На самом деле я пытаюсь решить эту проблему с помощью установки пользовательских урлов, но это не работает. на самом деле я не знаю. что мне делать.

Вернуться на верх