将年份设置为默认值Django

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将年份设置为默认值Django相关的知识,希望对你有一定的参考价值。

我在模型中有一个字段,默认为当前字段。所以我使用默认参数,并且editable为false,但是我得到了这个错误

未定义名称“年份”

我的模特

def Get_Year():
    year = datetime.date.today().year
    return year

class DisposalHeader(models.Model):
    DisposalSecondaryKey = models.UUIDField(unique=True, default=uuid.uuid4, editable=False)
    Year = models.IntegerField(editable=False, default=Get_Year)
    Sequence = models.IntegerField(editable=False, default=Sequence_SysGen)
    CostCenter = models.ForeignKey(CostCenter, on_delete=models.CASCADE)
    Requestor = models.ForeignKey(User, on_delete=models.CASCADE)
    SiteLocation = models.ForeignKey(SiteLocation, on_delete=models.CASCADE)
    ItemType = models.ForeignKey(ItemType, on_delete=models.CASCADE)
    Remarks = models.CharField(max_length=100, null=True)

错误屏幕截图

enter image description here

答案

尝试一下: year = datetime.datetime.now().year

另一答案

删除Get_Year函数,因为我并不真正需要它。

然后按如下所示更改模型:

year = models.DateField(default=datetime.date.today)

然后,如果您只想显示年份,则可以在模板中使用必要的格式设置选项。

以上是关于将年份设置为默认值Django的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 中为分组选项设置默认值

如何在 django 中为分组选项设置默认值

Django ChoiceArrayField:如何设置默认值

如何设置像'YYYYMM'这样的Postgresql默认值日期戳?

如何在 Django 上将 True 设置为 BooleanField 的默认值?

Django ModelForm 日期验证