预期类型' int',得到' IntegerField'而是Django

时间:2017-07-25 11:39:40

标签: python django

我试图让类Guide的对象成为类中其他对象计算的值。 这是我在我的代码中获得了多远,但却出现了错误

Expected type 'int', got 'IntegerField' instead.

如何让它发挥作用?

这是我的代码:

class Guide(models.Model): 
    guide_title = models.CharField(max_length=200) 
    guide_category = models.CharField(max_length=70) 
    guide_why = models.TextField() 
    guide_how = models.TextField() 
    user_current_conversion_rate = models.IntegerField(default=0) 
    user_optimal_conversion_rate = models.IntegerField(default=0) 
    user_monthly_visitors = models.IntegerField(default=0)
    user_average_order_value = models.IntegerField(default=0) 
    user_increase_conversion_rate = models.IntegerField(default=0)

    @property
    def user_increase_conversion_rate(self):
        return int(
           (self.user_monthly_visitors*(self.user_optimal_conversion_rate/100))*
            self.user_average_order_value) -
            ((self.user_monthly_visitors*(self.user_current_conversion_rate/100))*
            self.user_average_order_value)

1 个答案:

答案 0 :(得分:0)

如果需要通过@property对字段进行处理,可以更改字段名称以添加下划线(按照惯例),然后编写属性getter和setter方法。就这样,Django干净地知道如何设置字段,并且可以控制它的设置方式。

请参阅:

https://www.stavros.io/posts/how-replace-django-model-field-property/