【问题标题】:Django: Custom function value not showingDjango:自定义函数值未显示
【发布时间】:2013-10-10 01:36:13
【问题描述】:

试图了解如何在 Django 中制作自定义函数。我有以下内容:

型号:

class OptionManager(models.Manager):
    def test(self):
        test = "test"
        return test

class Option(models.Model):
    value = models.CharField(max_length=200)
    objects = OptionManager()
    def __str__(self):
        return self.value

查看:

def questn(request, question_id):
    o = Option.objects.filter(question=question_id).annotate(num_votes=Count('answer'))
    return render(request, 'test.html', {'o':o})

test.html

{{ o.test }}

我的页面是空白的,但它应该显示“测试”。我做错了什么?

【问题讨论】:

    标签: python django django-models django-views django-custom-manager


    【解决方案1】:

    它不起作用的原因是,自定义方法不应该在管理器上,而是在模型本身上

    class Option(models.Model):
        value = models.CharField(max_length=200)
        objects = OptionManager()
        def __str__(self):
            return self.value
    
        def test(self):
            test = "test"
            return test
    

    现在,对于您想要做的事情,应该是

    {{ o.objects.test }}
    

    请注意,这是自定义方法的错误用法。管理器通常用于自定义过滤选项。

    阅读更多关于managers here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      相关资源
      最近更新 更多