Атрибут id
должен быть уникальным, иначе всегда выбирается только первый. Поэтому используйте class
для группы элементов и перебирайте их для присоединения обработчика события.
<script>
var video = document.getElementsByClassName('vid');
// convert the element collection to array using Array.from()
// for older browser use `[].slice.call()` for converting into array
// and iterate over the elements to attach listener
Array.from(video).forEach(function(v) {
v.addEventListener('ended', function() {
v.currentTime = 0; // or use `this` to refer the element
v.load();
});
})
</script>
Используйте переменную.
{% extends base_template %}
и в своем представлении установите ее в «base.html» в своем представлении или новый файл «ajax.html», который просто предоставляет блок и ничего иначе.
Другие ответы требуют, чтобы вы передали дополнительную переменную контекста. Но пока вы можете получить доступ к объекту запроса, нет необходимости:
{% extends request.is_ajax|yesno:"app/base_ajax.html,app/base.html" %}
Я нашел, что это намного удобнее.
{% block 'someblock' %}
в аналогичный динамический способ?
– agconti
27 August 2013 в 18:39
django-compressor
создаст кэш для случая app/base.html
, но не для app/base_ajax.html
, который не будет работать при попытке загрузить кешированный шаблон (без ключа в сгенерированном автономном манифесте).
– interDist
24 April 2018 в 10:13
{% extends override_base|default:'base.html' %}
P.s. Я знаю, что это старый вопрос, но я нашел его при поиске ответа. Возможно, это поможет кому-то другому с той же проблемой.
Вы можете использовать {% extends variable%}
Передавать имя базового шаблона переменной при создании контекста в представлении.