클래스 기반이 같이 할 수 있습니다보기 :
1) JSON 형식으로 아약스를 통해보기의 반환 내용 (대한 AjaxMixin 쓰기) 필요한보기이 추가,
$('open_form_button').on('click', function(e){
e.preventDefault();
$.post('{% url 'view_which_return_form' %}' , function(data) { //may use and get, no sense
if (data.success) {
$('#place_for_form').html($($.parseHTML(data.html,document,"true")).filter('*'))
}
});
});
,369이 같은 HTML 페이지에있는 반환 형식
class LazyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Promise):
return force_text(obj)
return obj
class AjaxViewMixin(View):
"""
A mixin that can be used to render a JSON response for CBV.
"""
payload = {}
def render_to_response(self, context, **response_kwargs):
if self.request.is_ajax():
html = render_to_string(self.template_name, context, context_instance=RequestContext(self.request))
payload = {'success': True, 'html': html}
payload.update(self.payload)
response_kwargs['content_type'] = 'application/json'
return HttpResponse(json.dumps(payload, cls=LazyEncoder), **response_kwargs)
return super(AjaxViewMixin, self).render_to_response(context, **response_kwargs)
2)
Ajax를 통해 변수 'html'에 렌더링 된 양식 블록을 반환하고 필요한 위치에 삽입하십시오. 는 반환 된 데이터에 대한
$($.parseHTML(data.html,document,"true")).filter('*')
를 사용하여 기억, 또는 반환 블록에서 당신 스크립트가 제대로 작동하지.
페이지 내부에 나타나고 특정 페이지를로드하도록 프로그래밍 할 수있는 일종의 팝업 대화 상자 인 "javascript modals"를 찾을 수 있습니다. 그런 다음 사용자가 캘린더 위젯을 클릭 할 때마다 이벤트를 편집하는보기의 URL을 가진 새로운 모달을 표시합니다 (이 '/ events/edit /? date = 2014-09-27'). – Tiago