2014-03-26 2 views
-2

django 폼의 radioButton에서 onChange 함수를 실행해야합니다. 추가 프로세스를 위해 함수에 액세스 할 수 없습니다. 내가django 폼의 함수에 접근하는 방법

forms.py

BoolChoices = ((0, 'Yes'), (1, 'No')) 
class myForm(forms.ModelForm): 
     myfield = forms.IntegerField(widget=forms.TextInput(attrs={'size': 7, 'disabled':True})) 
    option = forms.TypedChoiceField(choices=BoolChoices, widget=forms.RadioSelect(renderer=HorizontalRadioRenderer, attrs={'onchange':'check_status()'}), coerce=int) 

이 views.py

def check_status(request): 
    if request.method == 'GET': 
     form = MyForm 
    else: 
     form = MyForm(request.POST) 
    if form.is_valid(): 
     opt = form.cleaned_data['option'] 
     if opt == 1: 
      form.fields['myfield'].widget.attrs['enabled'] = True 

에서 함수를 정의 다음과 같은 forms.py에서 양식을 정의했기 때문에 템플릿없이 관리 기능을 수행 할 수 있습니다 무엇 이 일을하려면해야합니까 ?? 템플릿에서

:

+0

이 질문은 매우 불분명합니다. 'onChange'는 자바 스크립트 함수이지만 자바 스크립트는 보여주지 않았습니다. –

+0

사실 나는 폼 라디오 버튼 onChange()에서 views.py에 정의 된 check_status 함수에 액세스하는 방법을 모른다. 나는 이것을 위해 무엇을해야합니까 ?? – Ria

+0

이를 위해 Ajax를 사용해야합니다. – Brandon

답변

0

당신은 AJAX를 사용할 필요가

$(document).ready(function(){ 
function check_status(){ 
    $.get("{% url app.views.check_status %}", function(data){ 
     console.log(data); 
    } 
} 
}) 

https://api.jquery.com/jQuery.get/

이 방법을 사용하면 뷰에서 기능을 실행합니다.

관련 문제