为Crispy-forms输入分配ID或类

0 投票
1 回答
1150 浏览
提问于 2025-04-18 14:21

我在这方面遇到了一些困难。我有一个模板,它可以渲染一个使用 crispy-forms 的表单,像这样:

  <div class="box">
     {% crispy form%}              
  </div>

在同一个模板中,我还有这段 JavaScript 代码:

<script>
    $(function() {
    $( ".datepicker" ).datepicker({
    changeMonth: true,
    changeYear: true,

    });
  });
</script>          

这个函数使用了一个类名:".datepicker"。这是我在 forms.py 中写的代码:

class FacturaForm(ModelForm):

class Meta:
    model = Factura 
    exclude = ("importe_Total", "iva")
    widgets = {
        'descripcion' : forms.Textarea(attrs={'rows':3}),
        'fecha_factura': forms.DateInput(attrs={'class':'datepicker'}),
            }

通过这种方式,我想在这个字段 "fecha_factura" 上使用日期选择器。但显然它没有正常工作。这是我在 forms.py 中的另一段代码:

helper = FormHelper()
helper.form_method = 'POST'

helper.layout = Layout(
    'tipo_Factura',
    'nombre_cliente',
    'fecha_factura',
    'numero_De_Factura',
    'descripcion',
    PrependedText('importe_sin_iva', '$'),
    FormActions(Submit('Agregar', 'Agregar', css_class= 'btn-primary'))
    )

所以,有没有什么办法让这段代码使用 JavaScript 并显示出漂亮的日期选择器呢?

任何建议都非常感谢。谢谢。

1 个回答

2

我也遇到过同样的情况,我没有在meta中使用日期选择器,而是把它放在布局中,这样就可以正常工作了,代码如下:

    self.helper.layout = layout.Layout(
        AppendedText('start', '<span class="glyphicon glyphicon-calendar"></span>', css_class="datepicker ", placeholder=_("Start")),

    )

撰写回答