모델 인스턴스를 추가하고 저장시 닫으려면 장고 관리자 내에 새 창을 여는 코드를 작성하고 있습니다. 이는 ForeignKey 필드 add (녹색 더하기 부호)의 동작과 매우 유사하지만 새로 작성된 모델 인스턴스를 선택하지 않습니다 (외래 키 필드가 아니기 때문에).save_model을 오버라이드하고 창을 닫으십시오.
나는 팝업 링크를 만들기 위해 추가하는 코드는 다음과 같습니다 내 모델이 이벤트라고
link = '<a id="add_id_event" class="add-another" onclick="return showAddAnotherPopup(this);" href="%s?date=%s">add</a>' % (addurl,currentdate)
. RelatedObjectLookups.js를 올바르게 추가합니다.
이 모델을 저장하려고하면 django는 ForeignKey 필드에서 사용할 코드와 동일한 코드를 적용하고 내가 가지고 있지 않은 SelectBox를 활성화하려고 시도합니다. 이것은이 코드가 사용되지만 HttpResponse에 호출이 무시 장고가 렌더링되는
def save_model(self, request, obj, form, change):
if request.GET.get('_popup') == '1':
obj.save()
return HttpResponse('<script type="text/javascript">window.close()</script>')
와 save_model 기능을 무시하려고 한 window.close()
에 도달하기 전에 실패 자바 스크립트의 원인 태만. 예 :
<script type="text/javascript">opener.dismissAddAnotherPopup(window, "14382", "TMC 2012\u002D02\u002D02 10:00:00 DDT2010B\u002D028");</script>
대상 SelectBox 개체가 없으므로 실패합니다.
도움 주셔서 감사합니다.
ModelAdmin에서 'save_model'대신 'add_view'를 재정의하십시오. 나는'save_model'가'HttpResponse'를 반환 할 것으로 생각하지 않습니다. – ilvar