0

試圖瞭解如何在Django中自定義函數。我有以下幾點: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 }} 

我的頁面是空白的,但它應該顯示 「測試」。我究竟做錯了什麼?

回答

2

它不正常工作的原因,自定義的方法不應該是管理者,但對模型本身現在

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