Вы можете попробовать изменить
meals = Meal.objects.filter(restaurant = request.user.restaurant).order_by("-id")
на
meals = Meal.objects.filter(restaurant = request.user.restaurant).prefetch_related('extras').order_by("-id")
и повторить попытку.
Документ об этом в prefetch_related
.
document.body.innerHTML = '';
очищает body
, да. Но он очищает innerHTML
так, как он есть на момент запуска кода. Когда вы запускаете код до того, как изображения и скрипт на самом деле находятся в body
, он пытается очистить body
, но нечего очищать.
Если вы хотите очистить body
, вы должны запустить код после того, как body
будет заполнено содержимым. Вы можете сделать это, поместив блок <script>
как последний дочерний элемент body
, чтобы все загружалось до запуска кода, или вы должны использовать какой-либо способ прослушивания события dom:loaded
.
Как говорили другие, простое решение - поместить ваш скрипт внизу страницы, потому что все элементы DOM загружаются синхронно сверху вниз. В противном случае, я думаю, что вы ищете document.onload(() => {callback_body})
или window.onload(() => {callback_body})
, как сказал Эрик. Это позволяет вам выполнить сценарий при возникновении события dom:loaded
, как сказал Доу Маан. Не уверен насчет свойств window.onload
, но document.onload
запускается только после загрузки всех элементов, css и скриптов. В вашем случае:
<script type="text/javascript">
document.onload(() =>
document.body.innerHTML = "";
)
</script>
В развитие ответа Douwem, в теге script поместите ваш код в onload:
<script type="text/javascript">
window.onload=function(){
document.body.innerHTML = "";
}
</script>
Только что получил тот же вопрос; нашел другое разрешение, просто подумал, что поделюсь им:
В файле заголовка, включенном во все мои другие файлы:
static char * file_bname = NULL;
#define __STRIPPED_FILE__ (file_bname ?: (file_bname = basename(__FILE__)))
Надеюсь, это полезно и кому-то другому:)
-121--2603084-Я не уверен, чего вы пытаетесь достичь, но вы можете подумать об использовании jQuery, который позволяет поместить ваш код в тэг head или отдельный файл сценария и по-прежнему выполнять код после загрузки DOM.
Затем можно выполнить следующее:
$(document).ready(function() {
$(document).remove();
});
, а также выборочно удалить элементы (все DIV, только DIV с определенными классами и т.д.)