django DateInput小部件忽略初始值

时间:2019-03-19 09:53:33

标签: django django-forms django-widget

我有一个createview,带有用于初始化表单数据的get_initial

class CaricaDocumento(AppViewMixin, CreateView):
    model = Documento
    template_name = "carica_documento.html"
    form_class = CaricaDocumentoForm


    def get_initial(self):
        initial = CreateView.get_initial(self)
        oggi = date.today()
        c_year = int(oggi.year)

        initial["data"] = oggi
        initial["anno"] = c_year
        ultimoDoc = Documento.objects.filter(
                anno=c_year).order_by('-numero')[0]
        initial["numero"] = ultimoDoc.numero + 1
        initial["fileOdt"] = None

        return initial

然后在相关表格中,我有一个媒体类来设置用于数据输入的小部件...

class CaricaDocumentoForm(ModelForm):
    fileOdt = FileField(
        help_text="File ODT (OpenDocument) - Il documento modificabile",  required=False)
    filePdfScansionato = FileField(
        help_text="File PDF con firme Scansionato",  required=False)
    fileFirmato = FileField(
        help_text="File Firmato, p7m/CAdES oppure pdf/PAdES",  required=False)
[...]


    class Meta:
        fields = ["tipo", "numero", "anno",
                  "data", "titolo", "servizio", "note"]
        widgets = {
            'data': DateInput(format=('%m/%d/%Y'), attrs={'class': 'datetime-input', 'placeholder': 'Seleziona una data', 'type': 'date'}),
        }
        model = Documento

它正确呈现了小部件(很酷的数据选择器)的数据字段,但是忽略了初始值...它呈现的是格式,而不是 oggi 变量的值。

为什么?

我可以做些什么来呈现初始值但也要有日期选择器?

我不希望出现此处所示的“默认”值:forms.DateInput default value

0 个答案:

没有答案