2014-12-11 2 views
0

ajax 호출의 응답으로 django modelform을 렌더링해야합니다.Django는 Ajax 응답이있는 ModelForm을 렌더링합니다.

내가 실제로 할 것은 :

def ubicacion_obtener_form(request): 
    try: 
     ubi_pk = request.POST.get('ubi_pk',0) 
     if ubi_pk!='0': 
      ubi = Ubicacion.objects.get(pk=ubi_pk) 
      ubicacion_form = UbicacionForm(request.POST,instance=ubi) 
      form = render_to_string('ubicacion_form.html', {'ubicacion_form':ubicacion_form}, 
             context_instance=RequestContext(request)) 
     else: 
      ubicacion_form = UbicacionForm(request.POST) 
      form = render_to_string('ubicacion_form.html', {'ubicacion_form':ubicacion_form}, 
             context_instance=RequestContext(request)) 
     return HttpResponse(form,status=200) 
    except Ubicacion.DoesNotExist: 
     return HttpResponse(u'No existe la ubicación',status=400) 
    except Exception as e: 
     return HttpResponse('%s %s' % (e.message,e.args),status=500) 

이 :

내가 나에게이 내이다

$.ajax({ // create an AJAX call... 
    data: {'ubi_pk':0}, 
    type: 'POST', // GET or POST 
    url: '{% url 'ubicacion_obtener_form' %}', 
    success: function(response,status) { // on success.. 
     if (status == 'success'){ 
      $('#form-nueva-ubicacion').html(response); 
     } 
     ... 
    }, 
    ... 
}); 
return false; 

빈 양식을 반환하는 model_pk = 0을 제공 아약스 함수를 호출 ubicacion_form.html 템플릿 :

{% load crispy_forms_tags %} 
{% csrf_token %} 
{{ubicacion_form|crispy}} 

ajax 함수에 ID를 지정하면 모델의 데이터가 포함 된 양식을 데이터와 함께 반환해야하지만 빈 양식을 얻으려고하면 양식이 포함 된 양식을 반환합니다. 오류 ", 필요한 메시지와 그 끔찍한 붉은 색의 메시지.

내가 뭘 잘못하고 있니? 오류 메시지없이 빈 양식을 얻으려면 어떻게합니까? 내가 부트 스트랩 테마

답변

1

다른 절에서 가정 - 빈 양식을 인스턴스화 할 때 당신은 여전히 ​​request.POST에 전달하는 내 양식을 렌더링하는 crispy_forms을 사용하고

참고. 하지 마십시오 : 그냥 ubicacion_form = UbicacionForm()하십시오.

+0

네가 맞아, 나는 그것이 간단한 일임을 알았지 만 올바른 길을 찾을 수 없다. 고맙습니다! –

관련 문제