【问题标题】:django + jquery + and dynamic form , fields sent emptydjango + jquery + 和动态表单,字段发送为空
【发布时间】:2010-11-17 23:50:22
【问题描述】:

我不知道这有多糟糕,但我有一个表单,在这个表单中我试图用 jquery 添加一些字段(动态??)点击一个单选按钮,所以,当我尝试发送数据时,django 说字段是空的......并且在调试器中(错误页面??)是 tru,字段是空的,但我的 Form.py 中的字段不是。

我是 Django 的新手,但我认为如果字段包含在数据中,数据将发送......好吧,Django 是一个大世界。

Form.py

class DiligenciaForm(ModelForm):
""" this is my unhidden form with the radios buttons """

    titulo = forms.CharField(max_length=70,help_text='Dele un nombre a su diligencia.')
    tipo = forms.ChoiceField(choices=TIPO)  
    vias= forms.TypedChoiceField(widget=forms.RadioSelect(), choices=CHOICES)

    class Meta:
        model = Diligencia
        #exclude =('socio','secuencia','ffin','fecha','fentrada','status')
        fields = ('titulo', 'tipo','vias')


#now the hidden form's that i want to render (append) to the first Form

class UnaViaForm(forms.Form):
""" i want with jquery show this form (append to) """
    Desde = forms.CharField(max_length=100)
    Hasta = forms.CharField(max_length=100)

查看.py

从 diligencia.account.forms 导入 DiligenciaForm, UnaViaForm

@login_required
def test(request):
    form = NuevaDiligenciaForm()
    form_1_via = UnaViaForm()

    return render_to_response('account/vias-form.html', { 'formulario':form,'UnaVia':form_1_via },
                                                           context_instance = RequestContext(request))

这是一种奇怪的方式:在我的模板中我有这个代码:

<div id="Una_via"> {{ UnaVia.as_p }} </div> 

and the jquery:
$(document).ready(function(){

   $("#Una_via").css("display","none");

   $("input[name=vias]").click(function(){ 
        var radio = $("input[name='vias']:checked").val();
        if(radio == 1){
            $("#Una_via").show("fast");
        }else{ 
            $("#Una_via").hide("fast"); } 
    });
  });

【问题讨论】:

  • 你能粘贴你的jQuery代码吗?将元素附加到表单的位置。
  • 你应该发布你的页面的html

标签: jquery django django-forms


【解决方案1】:

假设此表单 POST 回同一个视图,您忘记将表单绑定到 POST 数据:

def test(request):
    data = request.method == 'POST' and request.POST or None
    form = NuevaDiligenciaForm(data=data)
    form_1_via = UnaViaForm(data=data)

【讨论】:

    猜你喜欢
    • 2019-09-15
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 2010-10-30
    • 2011-02-07
    • 1970-01-01
    • 2011-01-24
    • 2012-02-22
    相关资源
    最近更新 更多