如何调用django html模板中的函数

问题描述 投票:1回答:2

我是Django的新手。问题是相当基本的,我读了一些谷歌链接和文件,显然我无法解决它。

基本上:

我需要访问html文件中特定博客的博客条目,但显然blog.blogentry_set()没有按预期工作。请有人帮忙吗。这是我试过的代码:

models.py文件:

class Blog(models.Model):
   subject = models.CharField(max_length = 20)
   ...

class BlogEntry(models.Model):
   ref = models.ForeignKey(Blog)
   ...

index.html文件:

{% for blog in blogs %}
    <p>{{ blog.subject}}</p>
    <div>
      <p>{{blog.date}}</p>
      {% for entry in blog.blogentry_set.all() %}
          {{entry.text}}
      {% endfor %}
    </div>
{% endfor %}

我试图删除(),这有助于取消错误消息,但输入文本没有按预期打印,所以一些东西再次无法正常工作。

我在模板语言中听到,调用函数我们不需要(),但是我们如何传递参数?

另外,我问自己:我需要在这里“加载”一些文件吗?请帮忙:D

python django django-models django-templates django-views
2个回答
6
投票

您不能将参数传递给这样的可调用属性。在视图中拉取值,或编写自定义模板标记来执行此操作。


0
投票

为了解决第一个问题(“blog.blogentry_set()没有按预期工作”),删除.all之后的括号,如:

{% for entry in blog.blogentry_set.all %}
    {{entry.text}}
{% endfor %}

第二个问题(“调用我们不需要的函数(),但是我们如何传递参数?”),由@Varnan K的答案充分解决。您可能需要创建一个custom template tag

© www.soinside.com 2019 - 2024. All rights reserved.