nested inlines에 자바 스크립트 솔루션을 구현했기 때문에이 질문을 던집니다. (예를 들어, 해킹이 느껴지지만, 가장 쉽고 빠른 해결책으로 보였습니다 ...) 이로 인해 예기치 않은 결과가 나왔습니다.제출 된 django 폼은 실제로 언제 데이터베이스에 저장됩니까?
jQuery를 정상적인 형태는 단지 (명백하게) 무시 제출 관리자 양식에 추가 입력 섹션을 추가 그래서 나는 다른 .ajaxSubmit 그래서
function ajaxSubmit(form) {
$(form).ajaxSubmit({
success: function() {
var item_data = $('.item-fields').fieldSerialize();
var post_url = '/admin/menu_generator/' + context + '/' + menu_id + 'items/new/';
$.post(post_url, item_data);
};
});
};
ajaxSubmit()와 $ (선택) 같은 jQuery forms plugin를 사용 심하게 명명 된, 사과.
어느 쪽이든, 그 비트의 코드는 정상적으로 양식을 제출하고, 성공하면 jQuery가 추가 한 입력을 처리하는 두 번째 POST 요청을 수행합니다. 이 내가 생각한, jQuery 입력을 아직 만들지 않은 데이터베이스에 물건이 필요할 때 문제를 방지 할 것이라고 생각했습니다. 명확성을 위해 예 :
사용자는 섹션을 만들 수 있으며 각 섹션에는 많은 항목이있을 수 있습니다. 사용자가 새 섹션을 만들고 새 항목을 추가하는 경우 일반 폼을 수행하지 않고 먼저 해당 섹션이 데이터베이스에 없으므로 항목을 만들 수 없습니다!
불행히도 내 솔루션이 작동하지 않습니다. 심지어 ajax를 제출 한 후에 새 섹션은 실제로 모든 js 코드 완료 후까지 데이터베이스에 기록되지 않습니다.이 사실은 저와 아마 누군가가 나에게 계몽 할 수 있다는 것을 놀라게했을까요? 양식 플러그인이이 작업에 적합하지 않을 수도 있습니다.
EDIT :: 내 코드에 구문 오류가있어서 작동하지 않습니다 ... 위의 스 니펫에서 볼 수 있듯이 성공 함수 끝에 세미콜론이 있습니다. 그것은 부서지는 물건이었다.
그렇진 . 표준 아약스 양식 제출을위한 완벽한 -하지만 내 솔루션은 좀 더 필요합니다. 기본적으로 한 번의 클릭으로 두 번의 양식 제출을하고 있었고 표준 양식 버튼을 사용하지 않고 추가 작업을 복잡하게 만들었습니다. 나는 언급하지 않았습니다. (링크를 사용했는데 이것은 모든 것이 매우 익숙한 또 다른 이유입니다). 실제로 알 수 없었던 단순한 구문 오류가 실제로 작동하지 않는다는 것이 밝혀졌습니다. 편집을 참조하십시오. –
전송할 데이터를 직렬화하여 먼저 경고하십시오 (작동하는지 확인하기 위해). 그런 다음 뷰에 제출하여 해당 개체에 저장하십시오. –