摘要:
解决办法 假设A表有一个多对多properties字段,通过A表远程查询properties的名称 qs = A.objects.filter(properties__name=xxx) 更复杂的: A表有一个外键字段version连接B表,B表有一个多对多字段properties,通过A表远程查询
阅读全文
posted @ 2023-12-08 19:34
Z哎呀
阅读(11)
推荐(0)
编辑
摘要:
前言 本篇不是系统性说明表关系的使用教学,需要对表间关系有一定使用经验且有一定思考的人,新手可以跳过该篇文章了。 简单总结 如果只是希望将数据连结在一起,另一个表的数据的存在与主表的关系不是生死存亡关系,那么用一对一、一对多或多对多; 如果希望主表的数据的变化,次表的数据希望可以同步变更,并且希望对
阅读全文
posted @ 2023-12-08 11:30
Z哎呀
阅读(4)
推荐(0)
编辑
摘要:
前提:嵌套字段是主表的一个字段 解决办法 class ChildAlarmSerializer(serializers.ModelSerializer): class Meta: model = models.ChildAlarm fields = [ 'id', 'name', ... ] cla
阅读全文
posted @ 2023-12-08 11:08
Z哎呀
阅读(4)
推荐(0)
编辑
// let homeEle = document.querySelector('body')
// homeEle.setAttribute('id', 'particles-js')
// /* ---- particles.js config ---- */
// particlesJS("particles-js", {
// "particles": {
// "number": {
// "value": 380,
// "density": {
// "enable": true,
// "value_area": 800
// }
// },
// "color": {
// "value": "#ffffff"
// },
// "shape": {
// "type": "circle",
// "stroke": {
// "width": 0,
// "color": "#000000"
// },
// "polygon": {
// "nb_sides": 5
// },
// "image": {
// "src": "img/github.svg",
// "width": 100,
// "height": 100
// }
// },
// "opacity": {
// "value": 0.5,
// "random": false,
// "anim": {
// "enable": false,
// "speed": 1,
// "opacity_min": 0.1,
// "sync": false
// }
// },
// "size": {
// "value": 3,
// "random": true,
// "anim": {
// "enable": false,
// "speed": 40,
// "size_min": 0.1,
// "sync": false
// }
// },
// "line_linked": {
// "enable": true,
// "distance": 150,
// "color": "#ffffff",
// "opacity": 0.4,
// "width": 1
// },
// "move": {
// "enable": true,
// "speed": 6,
// "direction": "none",
// "random": false,
// "straight": false,
// "out_mode": "out",
// "bounce": false,
// "attract": {
// "enable": false,
// "rotateX": 600,
// "rotateY": 1200
// }
// }
// },
// "interactivity": {
// "detect_on": "canvas",
// "events": {
// "onhover": {
// "enable": true,
// "mode": "grab"
// },
// "onclick": {
// "enable": true,
// "mode": "push"
// },
// "resize": true
// },
// "modes": {
// "grab": {
// "distance": 140,
// "line_linked": {
// "opacity": 1
// }
// },
// "bubble": {
// "distance": 400,
// "size": 40,
// "duration": 2,
// "opacity": 8,
// "speed": 3
// },
// "repulse": {
// "distance": 200,
// "duration": 0.4
// },
// "push": {
// "particles_nb": 4
// },
// "remove": {
// "particles_nb": 2
// }
// }
// },
// "retina_detect": true
// });
// var count_particles, stats, update;
// stats = new Stats;
// stats.setMode(0);
// stats.domElement.style.position = 'absolute';
// stats.domElement.style.left = '0px';
// stats.domElement.style.top = '0px';
// document.body.appendChild(stats.domElement);
// count_particles = document.querySelector('.js-count-particles');
// update = function() {
// stats.begin();
// stats.end();
// if (window.pJSDom[0].pJS.particles && window.pJSDom[0].pJS.particles.array) {
// count_particles.innerText = window.pJSDom[0].pJS.particles.array.length;
// }
// requestAnimationFrame(update);
// };
// requestAnimationFrame(update);