이미 정해져있는 인스턴스를 저장해야하기 때문에 Model() 인스턴스를 직접 만들어주어 pk값이 지정되게 한다
기존
instance = Goods.objects.create(**validated_data)
image_set = self.context['request'].FILES.getlist('goodsimage_set')
image_list = [{'goods' : instance, 'image' : image} for image in image_set]
GoodsImage.objects.bulk_create(image_list)
변경 후
instance = Goods.objects.create(**validated_data)
image_set = self.context['request'].FILES.getlist('goodsimage_set')
image_list = [GoodsImage(goods = instance, image = image) for image in image_set]
GoodsImage.objects.bulk_create(image_list)
'dict' object has no attribute 'pk' when using Django bulk_create() function
<div class="pie-timer" style="box-shadow: 0 2px 5px 0px;">
<div id="center-timer"></div>
</div>
.pie-timer {
position: relative;
display: inline-block;
width: 200px;
height: 200px;
border-radius: 50%;
transition: 0.3s;
}
#center-timer {
background: #fff;
display: block;
position: absolute;
top: 50%;
left: 50%;
width: 190px;
height: 190px;
border-radius: 50%;
text-align: center;
line-height: 100px;
font-size: 20px;
transform: translate(-50%, -50%);
}
async function startTimer(time) {
let totalSecond = time
let x = setInterval(function () {
let min = parseInt(totalSecond / 60)
let sec = totalSecond % 60
let perTime = totalSecond / (60 * 20) * 100
let percolor = perTime <= 10 ? 'red' : ['blue', 'blue', 'purple'] [parseInt(perTime / 40)] // 테두리 색상 설정
document.getElementById('center-timer').innerHTML = min + "분" + sec + "초";
$('.pie-timer').css({
"background": "conic-gradient(" + percolor + " 0% " + perTime + "%, #ffffff " + perTime + "% 100%)"
});
totalSecond--;
if (totalSecond < 0) {
clearInterval(x);
document.getElementById('center-timer').innerHTML = '종료';
}
}, 1000);
}
from django.core.validators import validate_image_file_extension
class GoodsImage(models.Model):
goods = models.ForeignKey(Goods, on_delete=models.CASCADE)
image = models.ImageField(upload_to='goods/',validators=[validate_image_file_extension])
오늘 한 일
회고
<script>
if (!confirm("확인(예) 또는 취소(아니오)를 선택해주세요.")) {
// 취소(아니오) 버튼 클릭 시 이벤트
} else {
// 확인(예) 버튼 클릭 시 이벤트
}
</script>
블로그를 야무지게 채울 생각에 셀렘 가득 ㅎㅋ