我有一个函数在这个文件中创建一个百分比
status.py
class Status:
read_books = Books.objects.filter(read="True")
all_books = Books.objects.all()
def percentage(self):
asdf = get_percentage(len(self.read_books),len(self.all_books))
return asdf
我试图能够在我的模板中使用这个函数,通过在我的模板中使用类似的东西来显示这个百分比
{{ status.percentage }}
这可能吗?为了做到这一点,我是否需要在我的观点中加入逻辑?你知道吗
也许我可以把这个函数放到我的视图类中,然后从那里调用它?你知道吗
编辑:
views.py
class BooksView(TemplateView):
template_name = 'KPI/Books.html'
read_books = Books.objects.filter(read="True")
all_books = Books.objects.all()
def get_context_data(self, **kwargs):
context = super(BooksView, self).get_context_data(**kwargs)
context['all_books'] = self.all_books
context['read_books'] = self.read_books
return context
如果使用class based view,只需在上下文中添加status对象即可。为此,请重写
get_context_data
方法:是。只需将
Status
对象传递给模板引擎(因此对于render(..)
来说,这是一个上下文变量)。你知道吗例如,对于视图,可以将其编写为:
所以现在模板上下文包含一个变量
status
,它只是一个Status
对象,您可以像使用其他变量一样使用它。如果您编写{{ status.percentage }}
,它将调用precentage
方法。你知道吗因此,在基于类的视图中,可以“修补”方法
get_context_data
,如@Andy所示:相关问题 更多 >
编程相关推荐