首页 > 解决方案 > 从 ExtractQuarter 中获取价值

问题描述

我有一个 Django 模型。填充此模型的表单完成后,我希望我的保存功能在用户输入的字段之一上使用新的 ExtractQuarter 数据库功能。根据 ExtractQuarter 生成的值,我想填充另一个对表单用户隐藏的字段。

但是,我无法弄清楚如何从 ExtractQuarter 中实际获取值。

保存功能是:

def save(self, *args, **kwargs):
    q = ExtractQuarter(self.fiscal_year_end).values.get()
    if q >= 3:
        y = ExtractYear(self.fiscal_year_end).Value()
    else:
        y = ExtractYear(self.fiscal_year_end).Value()-1
    self.fiscal_year = y
    super(ModelName, self).save(*args, **kwargs)

这给了我:

TypeError: '>=' not supported between instances of 'ExtractQuarter' and 'int'

谢谢您的帮助。

标签: djangodjango-modelsdjango-forms

解决方案


如果该fiscal_year_end字段是 python 的DateTime 对象,您将获得季度,

import math


class Mymodel(models.Model):
    # your fields

    def save(self, *args, **kwargs):
        quarter = math.ceil(self.fiscal_year_end.month / 3)
        if quarter >= 3:
            self.fiscal_year = self.fiscal_year_end.year
        else:
            self.fiscal_year = self.fiscal_year_end - 1
        super(ModelName, self).save(*args, **kwargs)

推荐阅读