Вы можете использовать CSS для большей части своего кода, а затем просто переключить класс show
на родительский элемент #loading
:
const Loading = () => {
let tOut = null;
const el = document.querySelector("#loading");
const show = () => {
el.classList.add('show');
tOut = setTimeout(hide, 5000);
};
const hide = () => {
el.classList.remove('show');
clearTimeout(tOut);
};
return {
show,
hide
};
};
const loadingDots = Loading();
const loadBtns = document.querySelectorAll('.load');
[...loadBtns].forEach(el => el.addEventListener('click', loadingDots.show));
// you can always use loadingDots.hide() to hide when needed (before the 5sec ticks out)
#loading {
position: fixed;
z-index: 100;
top:0;
left: 0;
width:100vw;
height:100vh;
display:flex;
background: rgba(0,0,0,0.5);
color: #fff;
font-size: 3em;
align-items: center;
justify-content:center;
visibility: hidden;
opacity: 0;
transition: 0.4s;
}
#loading.show {
opacity: 1;
visibility: visible;
}
@keyframes blink {
50% {opacity: 1;}
}
#loading i:after {content: "\25cf";}
#loading i { opacity: 0; animation: blink 1.2s infinite; }
#loading i:nth-child(2) { animation-delay: .2s; }
#loading i:nth-child(3) { animation-delay: .4s; }
<div id="loading"><i></i><i></i><i></i></div>
<button class="load">LOAD</button>
<button class="load">LOAD</button>
<button class="load">LOAD</button>
Начиная с версии 1.1 и выше, команда управления Django dumpdata
позволяет выгружать данные из отдельных таблиц:
./manage.py dumpdata myapp1 myapp2.my_model
Вы также можете разделить несколько приложений и моделей в командной строке. Вот каноническое определение:
django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
Записать это на определенном файле:
python manage.py dumpdata app_label.ModelName app_label.ModelName2 > fixtures/specic.json
Как уже отмечалось, вы не можете сделать это с помощью команды manage.py в Django 1.0. Однако вы можете использовать сценарий для экспорта файла JSON и загрузки его с помощью loaddata
:
from django.core import serializers
from myproject.myapp import models
data = serializers.serialize("json", models.MyModel.objects.all())
out = open("mymodel.json", "w")
out.write(data)
out.close()
В качестве обходного пути вы можете создать другое приложение и скопировать модель, но указать ее на существующую таблицу с помощью мета-опции db_table. Затем вы можете просто сбросить скопированные модели в новое приложение. Ваше существующее приложение не пострадает.
Думаю, у вас есть решение вашего вопроса. Вы можете сделать дамп отдельной модели следующим образом:
./manage.py dumpdata myapp.my_model