【问题标题】:how to render a djangoform into bootstrap modal window如何将 django 表单呈现到引导模式窗口中
【发布时间】:2014-12-13 14:04:41
【问题描述】:

我正在学习 Django,我想在引导模式视图中显示一些表单。 我有一个带有 HTML 表格的模板,该表格有一个带有下拉按钮的列,其中包含多个选项。 表格使用 django-tables2 呈现,表单使用 django-crispy-forms 呈现

我对模态表单的表单定义:

class RecepcionForm(forms.ModelForm):
    fecha_recepcion = forms.DateField(widget=DateInput())
    def __init__(self,*args,**kwargs):
       super(RecepcionForm,self).__init__(*args,**kwargs)
       self.helper = FormHelper(self)
       self.helper.layout = Layout(
            Field('id_proveedor',
                  'anio',
                  'mes',
                  'usuario',
                  readonly = True
             ),
            Fieldset('',
                     'fecha_recepcion',
                     'num_archivos',
                     Submit('save','Grabar'),
                     HTML('<a class="btn btn-danger" href={% url "monitor" %}>Cancelar</a>')
            )
       )
    class Meta:
       model = DetalleRecepcion

我对模态表单的看法:

@login_required(login_url='/login/')
def RecepModalView(request):
    idp = request.GET.get('i')
    anio = request.GET.get('a')
    mes = request.GET.get('m')
    if request.method == 'POST':
       r = DetalleRecepcion.objects.get(id_proveedor=idp,anio=anio,mes=mes)
       form = RecepcionForm(request.POST, instance=r)
       if form.is_valid():
          form.save()
          return HttpResponseRedirect('/monitor/')
    else:
       r = DetalleRecepcion.objects.get(id_proveedor=idp,anio=anio,mes=mes)
       r.usuario = request.user
       form = RecepcionForm(instance=r)

    return render_to_response('recepmodal.html',
                              {'form':form},
                              context_instance=RequestContext(request))

我的模态表单模板

{% load crispy_forms_tags %}
<div class="modal fade" id="recmodal" tabindex="-1" role="dialog"  aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title" id="myModalLabel">Register </h4>
      </div>
      <div class="modal-body">
        <form action="" method=post">
         <div class="tab-content">
           <div class="tab-pane active" id="tab1">

    {% crispy form %}

           </div>
         </form>
         </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
        <button type="button" class="btn btn-primary">Submit</button>

      </div>
    </div>
  </div>
</div>

我不知道如何打开模式并将参数传递给模态表单。

我尝试使用 django 标签包含 示例 sn-p:

<body>
<table>
.
.
.
</table>

{% include 'recmodal.html' %}

</body>

但我收到此错误 异常值:在

中查找键 [form] 失败

简单来说,我如何使用 django-crispy-forms 在 django 中传递值并打开引导模式表单。

任何建议

提前致谢

【问题讨论】:

  • 在您的模态表单中,在开始表单标记中,您缺少引号:method=post" 而不是 method="post" - 这是这里的错字还是原始代码中的错误?
  • 错字错误。表单工作正常,但我可以在模式窗口中呈现表单

标签: django twitter-bootstrap django-forms django-crispy-forms


【解决方案1】:

我知道现在回答为时已晚,但我将我的表单呈现在一个模态中,使用它到一个“modal-body”标签中:

<form method="post">
    {% csrf_token %}
    {% form.as_p %}
</form>

我希望这对所有像我这样的人都有效,我们来到这里寻找答案。

问候。

【讨论】:

    猜你喜欢
    • 2014-09-09
    • 2017-08-04
    • 1970-01-01
    • 2020-05-18
    • 2016-07-21
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2014-08-11
    相关资源
    最近更新 更多