我希望在每个 URL 端点提供相同视图的原因是视图将通知信息发送给经过身份验证的用户。
例如,这是一个视图,其中包含我希望在每个页面中提供的数据:
class NotificationsView(View):
def get(self, request, *args, **kwargs):
profile = Profile.objects.get(user__username=self.request.user)
notifs = profile.user.notifications.unread()
return render(request, 'base.html', {'notifs': notifs})
我正在尝试将上下文变量发送到我的模板中以与 javascript 一起使用。JS 文件与模板分开,所以我尝试先在基本模板中声明全局 JS 变量,然后在 JS 文件中使用它们。
base.html:
...
{% include "landing/notifications.html" %}
<script src="{% static 'js/notify.js' %}" type="text/javascript"></script>
{% register_notify_callbacks callbacks='fill_notification_list, fill_notification_badge' %}
登陆/notifications.html:
<script type="text/javascript">
var myuser = '{{request.user}}';
var notifications = '{{notifs}}';
</script>
通知.js:
...
return '<li><a href="/">' + myuser + notifications + '</a></li>';
}).join('')
}
}
基于此代码,您可以看到我是如何陷入困境的,我需要使用 CBV 将正确的通知发送到landing/notifications.html,以确保可以为 javascript 变量动态呈现JS 文件。
我对应该如何连接 URL 感到非常困惑。
像这样:
url(
regex=r'^notes$',
view=views.NotificationsView.as_view(),
name='home'
),
将我限制在特定的端点(“/notes”)。
你会建议我如何解决这个问题?