
페이지의 삭제 버튼을 눌렀을 때 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string 이런 오류가 발생합니다.. 물론 웹종 관련 내용은 아니라 올리면 안되지만 몇십분째 구글링을 해도 모르겠어서 올립니다 ㅠㅠ

function listing() {
$.ajax({
type: "GET",
url: "diary",
data: {},
success: function (response) {
let diaries = response['all_diary']
for (let i = 0; i < diaries.length; i++) {
let title = diaries[i]['title']
let content = diaries[i]['content']
let file = diaries[i]['file']
let temp_html = `<div class="card">
<img class="card-img-top" src="../static/${file}" alt="Card image cap">
<div class="card-body">
<h5 class="card-title">${title}</h5>
<p class="card-text">${content}</p>
<p class="card-text"><small class="text-muted"></small></p>
</div>
<button type="button" class="btn btn-secondary" onclick="delete_diary('${diaries["_id"]}')"> 삭제 </button>
</div>`
$('#cards-box').append(temp_html)
}
}
})
}
function posting() {
let title = $('#title').val()
let content = $("#content").val()
let file = $('#file')[0].files[0]
let form_data = new FormData()
form_data.append("file_give", file)
form_data.append("title_give", title)
form_data.append("content_give", content)
$.ajax({
type: "POST",
url: "/api/save_diary",
data: form_data,
cache: false,
contentType: false,
processData: false,
success: function (response) {
alert(response["msg"])
window.location.reload()
}
});
}
function delete_diary(_id) {
console.log(_id)
let title = $('#title').val()
let content = $("#content").val()
let file = $('#file')[0].files[0]
$.ajax({
type: "POST",
url: `/api/delete_diary`,
data: {
_id: _id
},
success: function (response) {
alert(response["msg"])
}
});
}
@app.route('/api/save_diary', methods=['POST'])
def save_diary():
title_receive = request.form['title_give']
content_receive = request.form['content_give']
file = request.files["file_give"]
extension = file.filename.split('.')[-1]
today = datetime.now()
mytime = today.strftime('%Y-%m-%d-%H-%M-%S')
filename = f'file-{mytime}'
save_to = f'static/{filename}.{extension}'
file.save(save_to)
doc = {
'title':title_receive,
'content':content_receive,
'file': f'{filename}.{extension}',
'time': today.strftime('%Y.%m.%d')
}
db.diary.insert_one(doc)
return jsonify({'msg': '저장 완료!'})
@app.route('/api/delete_diary', methods=['post'])
def delete_diary():
_id = request.form['_id']
print(_id)
db.diary.delete_one({'_id': ObjectId(_id)})
return jsonify({'result': 'success', 'msg' : '글 삭제'})
