【问题标题】:Fat Models, working out variables based on other date胖模型,根据其他日期计算变量
【发布时间】:2021-04-02 01:41:00
【问题描述】:

我对 Django 还很陌生,但我正在努力坚持 Django 的胖模型、瘦控制器方面。

我有一个可以更改的价格输入,因此已将其分配给一个表单:

class AdminData(models.Model):
year1 = models.IntegerField()
year3 = models.IntegerField()

我想根据不同的因素来计算这些服务的 day_rate,例如一年中的周数和每天的小时数,这些因素在我的模型之外是固定的

    weeksinyear = 52

如何根据用户输入的 1 年和 3 年选项获得 day_rate 固定变量,我最初的想法是创建一个如下所示的变量,但它不起作用。

week_rate_year1 = year1 / weeksinyear

非常感谢任何帮助,我是想通过模型来做到这一点,还是应该在模板或视图中运行此代码?因为它是基于用户输入值的静态值,所以我不确定。

感谢你帮助一个菜鸟。

【问题讨论】:

    标签: django forms django-models


    【解决方案1】:

    一个简单的 Python property 就可以了...

    class AdminData(models.Model):
        year1 = models.IntegerField()
        year3 = models.IntegerField()
    
        @property
        def week_rate_year1(self):
            return self.year1 / weeksinyear
    

    【讨论】:

    • 非常感谢,这很明显!
    • 如何测试该值是否正确通过?
    • 在单元测试中? x = AdminData(year1=520); assert x.week_rate_year1 == 10 应该可以吧?
    • 我得到一个 AssertionError?这是什么?
    • 好吧,“测试值是否正确通过”是什么意思?
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 2019-04-11
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多