【问题标题】:Refer to a model method within method in Django 1.5参考 Django 1.5 中方法内的模型方法
【发布时间】:2013-04-14 08:10:36
【问题描述】:

我有模特

class ModelName(models.Model):
    field = models.CharField(max_length=200)

    def field1(self):
        return self.field[10:11]

    def field2(self):
        return self.field1

在我的模板中,我在打印{{ object.field1 }} 时得到了所需的结果,但似乎我无法在模型方法中引用另一个模型方法。打印 {{ object.field2 }} 时失败并显示消息 bound method

【问题讨论】:

    标签: python django templates methods model


    【解决方案1】:

    当你的方法只是 getter 时,最好用@property 装饰它们。然后,您在访问它们时就不需要括号了。 Rohan 是对的,您缺少括号。

    class ModelName(models.Model):
        field = models.CharField(max_length=200)
    
        @property
        def field1(self):
            return self.field[10:11]
    
        @property
        def field2(self):
            return self.field1
    

    【讨论】:

      【解决方案2】:

      在您的 field2() 方法中,您正在返回对 field1 方法的引用,因此模板的行为方式就是这样。

      您可能想从field2 调用field1 然后返回?喜欢:

      def field2(self):
          return self.field1()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-05
        • 2011-08-20
        • 2019-05-06
        • 1970-01-01
        • 2016-03-17
        相关资源
        最近更新 更多