如何访问Django表单中的函数

-2 投票
1 回答
732 浏览
提问于 2025-04-17 23:58

我需要在Django表单的单选按钮上执行onChange函数。但是我无法访问这个函数来进行后续处理。有没有办法在没有模板的情况下执行管理功能,因为我在forms.py中定义了表单,如下所示:

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

我该怎么做才能让这个功能正常工作呢??

1 个回答

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/

这样你就可以从视图中执行函数了。

撰写回答