【问题标题】:How to access functions in django forms如何访问 django 表单中的函数
【发布时间】:2014-05-04 15:44:04
【问题描述】:

我需要在 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

我应该怎么做才能让它工作?

【问题讨论】:

  • 这个问题很不清楚。 onChange 是一个 Javascript 函数,但您没有显示任何 Javascript。
  • 其实我不知道如何通过表单单选按钮 onChange() 访问 views.py 中定义的函数 check_status。我该怎么办??
  • 你需要使用 Ajax。

标签: python django django-forms


【解决方案1】:

你需要使用 AJAX:

在您的模板中:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2019-03-12
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多