Python 为什么我的视图上下文在这种情况下不显示?

Python 为什么我的视图上下文在这种情况下不显示?,python,django,Python,Django,我应该看到一个值显示在“通知”旁边,感叹号之前 正如听起来一样,我无法显示视图中提供的上下文变量“{var}”。我尝试过cbv和基于函数的视图 在这个项目中,我使用Django 2.1,Python别名设置为3.6 这是我使用的第一种视图,仅用于显示数字: class NotificationView(DetailView): template_name = "base.html" def get_context_data(self, **kwargs): me

我应该看到一个值显示在“通知”旁边,感叹号之前

正如听起来一样,我无法显示视图中提供的上下文变量“{var}”。我尝试过cbv和基于函数的视图

在这个项目中,我使用Django 2.1,Python别名设置为3.6

这是我使用的第一种视图,仅用于显示数字:

class NotificationView(DetailView):
    template_name = "base.html"

    def get_context_data(self, **kwargs):
        message_count = Message.objects.filter(recipient=self.request.user).count()
        safeTrans_count = SafeTransaction.objects.filter(trans_recipient=self.request.user).count()
        context = super().get_context_data(**kwargs)
        context["Notify"] = message_count + safeTrans_count
        return context
这是第二种视图,我尝试创建最简单的函数来显示上下文:

def NotifyView(request):
    title = "Notification View %s" % (request.user)
    context = {
        "Notification_Count": 10,
        "Notification_Title": title,
    }
    return render(request, "base.html", context)
这是用于显示的模板的一个片段(诸如{{Notification_Title}}之类的变量根本不显示):

{%if user.u经过身份验证%}
{%else%}

任何关于我可以忽略什么的想法都将不胜感激

:::

这是我对这个特殊问题的解决方案。请告诉我是否有更好的方法来显示值,而不必将模板上的实际模板标记传递给用户:
{%notify user%}


我认为您对URL、视图和模板之间的关系感到困惑。URL调用视图,视图(可能)呈现模板。因此,该视图负责提供呈现模板所需的所有信息。您不能仅仅定义一个完全独立的视图,并期望它的信息以某种方式进入模板


如果您有需要通过多个视图提供给模板的数据,您可以使用多种方法—共享基本视图类、上下文处理器或自定义模板标记。

第二个Python代码片段相当混乱(语法无效)。您看到了什么?实际问题是什么?我将添加一个屏幕截图来说明我所看到的内容。抱歉@AKX,我只是注意到,我相信这一定是我的复制粘贴错误,我相信我现在已经更正了。查看代码,没有什么立即出错的。您是否专门配置了
模板
?您确定您正在编辑的所有文件都是您期望的吗(例如,您没有意外地编辑模板的错误副本)?下面是整个base.html的外观。index.html和其他所有内容都是从该文件继承的,它们不也应该继承上下文吗?不,这与继承无关。你脑子里的东西倒过来了。基本URL调用索引视图,该视图呈现模板。您的notify视图从未被调用,因为调用视图的唯一对象是URL。好的,我明白了,那么有没有一种方法可以同时调用views.index和NotificationsView.as_view()在同一行中,或者我必须重新布线,以便所有内容都以/index/开头,并且我的base.html路径是“”?是的,包含标记可以工作,或者,您可以使用一个简单的标记直接在基本模板中显示通知计数。两者都可以。您可以在decorator中使用
takes_context=True
参数来确保将完整的上下文(包括
请求
)传递给标记函数。
       {% if user.is_authenticated %}
        <a class="active-2" href="#">Notifications{{Notification_Title}} 
          <i class="fas fa-exclamation-circle">
          </i>
        </a>
       {% else %}