Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django异常值:无效筛选器错误:_Django - Fatal编程技术网

Django异常值:无效筛选器错误:

Django异常值:无效筛选器错误:,django,Django,我试图在float中显示除法结果。因此,我刚刚得出结论,过滤器可能会有所帮助,如下所示: 在views.py中: from django import template register = template.Library() @register.filter def div(value, div): return round((value / div) * 5, 2) 在模板中: {% for post in Posts %} {{ post.likes|div:

我试图在float中显示除法结果。因此,我刚刚得出结论,过滤器可能会有所帮助,如下所示:

在views.py中:

from django import template

register = template.Library()
@register.filter
def div(value, div):
    return round((value / div) * 5, 2)
在模板中:

{% for post in Posts %}
        {{ post.likes|div:post.total_like }}
{% endfor %}
{% for post in Posts %}
    {{ post.like_ratio }}
{% endfor %}
其中
value=post.likes
div=post.total\u like
但它给出了类似导入错误的东西:

无效筛选器:“div”

我还尝试将div函数/filter放入另一个文件中,如
mfilter.py
,并将其导入模板中,如
{%load mfilter%}
,但没有成功

更新:

- app
  --templates
    ---app
       ----mytemplate.html

  --admin.py
  --mfilteter.py
  --forms.py
  --views.py
  --apps.py
  --urls.py
  --models.py      

模板标记和模板过滤器位于
templatetags/
目录下,因此:

-app --templates ---app mytemplate.html --templatetags/ __init__.py mfilteter.py admin.py forms.py views.py apps.py urls.py models.py 并在模板中使用此选项:

{% for post in Posts %}
        {{ post.likes|div:post.total_like }}
{% endfor %}
{% for post in Posts %}
    {{ post.like_ratio }}
{% endfor %}
{%for Posts in Posts%}
{{post.like_ratio}}
{%endfor%}

这通常更好,因为模板不应该实现“业务逻辑”,而应该只实现“呈现逻辑”。通过将其设置为属性,您可以在视图、模型管理员等中使用它。

您在
views.py
中不使用它,而是在应用程序的
templatetags
目录下使用它。您可以显示应用程序的“文件树”吗?我刚刚更新了问题。不确定这是否是你需要的!
templatetags
在哪里您的文件树不包括
视图
mfilter
等?谢谢。我尝试了使用属性,但它给出了以下错误:
TypeError:不支持/:'int'和'method'的操作数类型
@ElisaFo:这意味着
self.total\u likes
是一个方法?@ElisaFo:然后需要调用该方法,因此
self.likes/self.total\u likes()