Django / Python:使用Template中的参数调用模型/类函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django / Python:使用Template中的参数调用模型/类函数相关的知识,希望对你有一定的参考价值。
在Django 2.0中,我试图从类中调用一个方法,从模板中调用。
从模板打电话
{% activity.liked_by(user) %}
来自班级的方法
class Activity(models.Model):
name = models.CharField(max_length=15)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def liked_by(self, user):
return Like.objects.filter(activity_id=self.id, user_id=user.id)
我知道这是不可能的,但最好的替代方案是什么?如果不将用户作为参数传递,我就无法执行查询。
谢谢!
答案
您可以在传递给模板的上下文中提供查询,也可以使用custom template tag。让我们假设创建的文件名为my_template_tags.py
(请注意,此文件必须在正确的目录结构中)。
from django import template
register = template.Library()
@register.simple_tag
def get_method(test, user):
return Test.objects.filter(test_id=test.id, user_id=user.id)
然后在模板中:
{% load my_template_tags %}
{% get_method test user %}
以上是关于Django / Python:使用Template中的参数调用模型/类函数的主要内容,如果未能解决你的问题,请参考以下文章