【发布时间】:2018-02-02 12:27:05
【问题描述】:
我希望在每个 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”)。
你建议我如何解决这个问题?
【问题讨论】:
标签: django django-templates django-views django-notification