Python I';我正在进行视图计数,但它导致了一个错误

Python I';我正在进行视图计数,但它导致了一个错误,python,html,django,Python,Html,Django,错误“page_hits”的名称用takes_context=True修饰,因此它必须具有第一个参数“context” 我去看风景。该函数必须处理人员进入站点并将其输出到模板 请提供现成的代码修复已经读了很多 views.py from django.template.loader_tags import register from news.models import PageHit from django import template @register.simple_tag(take

错误“page_hits”的名称用takes_context=True修饰,因此它必须具有第一个参数“context” 我去看风景。该函数必须处理人员进入站点并将其输出到模板

请提供现成的代码修复已经读了很多

views.py

from django.template.loader_tags import register
from news.models import PageHit
from django import template

@register.simple_tag(takes_context=True)
def page_hits(ctx, page_url=None):
    counter = (PageHit.objects
                      .filter(url=(ctx['request'].path if page_url is None else page_url))
                      .first())
    return 0 if counter is None else counter.count

第一个名称应该是
上下文
,而不是
ctx
,如下所述:

如果模板标记需要访问当前上下文,可以使用 注册标记时,
接受\u context
参数:

(……)

请注意,第一个参数必须调用
上下文

因此,您需要将其改写为:

@register.simple_tag(takes_context=True)
def page_hits(context, page_url=None):
    counter = PageHit.objects.filter(
        url=context['request'].path if page_url is None else page_url
    ).first()
    return 0 if counter is None else counter.count
@register.simple\u标记(接受上下文=True)
def page_hits(上下文,page_url=None):
计数器=PageHit.objects.filter(
url=context['request']。如果page\u url不是其他页面的路径
).first()
如果计数器不是其他计数器,则返回0。count
From(在第一次提到takes\u context时)“注意,第一个参数必须称为context。” 改为

@register.simple_tag(takes_context=True)
def page_hits(context, page_url=None):
    counter = (PageHit.objects
                      .filter(url=(context['request'].path if page_url is None else page_url))
                      .first())
    return 0 if counter is None else counter.count
@register.simple_tag(takes_context=True)
def page_hits(context, page_url=None):
    counter = (PageHit.objects
                      .filter(url=(context['request'].path if page_url is None else page_url))
                      .first())
    return 0 if counter is None else counter.count