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

时间:2014-08-19 12:18:42

标签: python django django-models django-templates django-views

我是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 %}

我尝试删除(),这有助于删除错误消息,但输入文本未按预期打印,因此某些内容无法正常工作。

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

另外,我问自己:我是否需要加载&#39;一些文件在这里?请帮忙:D

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

要解决第一个问题(&#34; blog.blogentry_set()未按预期工作&#34; ),请删除.all之后的括号:

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

第二个问题(&#34;调用函数我们不需要(),但是我们如何传递参数?&#34; ),由@Varnan K&#充分解决39;回答。您可能需要创建custom template tag