django 我无法在我的选择中添加第一个空选项

qc6wkl3g  于 2023-05-08  发布在  Go
关注(0)|答案(1)|浏览(144)

我有以下表格

class Report3Form(Form):  
    fecha = ChoiceField(    
        choices = [],          
        widget=Select(attrs={
            'class': 'form-control',
        }),
    )
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['fecha'].choices = [(f"{d:%Y-%m}", f"{d:%B, %Y}") for d in ConsumoElect.objects.dates("fecha", "month")]

它基于这个模型:

class ConsumoElect(models.Model):
    pgd = models.ForeignKey(TipoPGD, on_delete=models.CASCADE, related_name='consumoelect')
    fecha = models.DateField(default=datetime.now)
    fecha_AM = models.CharField(max_length=20)  
    lec_madrugada = models.IntegerField(default=0)
    lec_dia = models.IntegerField(default=0)
    lec_pico = models.IntegerField(default=0)
    reactivo = models.IntegerField(default=0)
    dato = models.IntegerField(default=0)
    total = models.IntegerField(default=0)

该表格显示了一个选择与月份和它的年份,如果一个独特的是在ORM中使用,我需要的第一件事,选择显示是一个空值,说:“选择一个日期”。
此链接显示了一个我想要的示例,但我无法使其适应我的问题
在Django中如何基于模型charfield向表单添加占位符

abithluo

abithluo1#

您可以将固定的1项列表与“选择日期”和计算列表连接起来
在本例中,由于您没有为字段指定“blank=True”参数,因此默认值将为blank=False,用户将被迫从组合框中选择一个项。

self.fields['fecha'].choices = \
[('','Select a date')] + \
[(f"{d:%Y-%m}", f"{d:%B, %Y}") for d in ConsumoElect.objects.dates("fecha", "month")]

相关问题