我正在使用django-allauth
进行身份验证。我有一个仪表板,有许多链接。
user.html
`{% include 'sidebar.html' %}
<h1>Profile View</h1>
<p>{{ profile.username }}</p>`
change_password.html
`{% include 'sidebar.html' %}
<h2>Change Password</h2>
<p>{{ profile.username }}</p>`
sidebar.html
`<a href="{% url 'profile_view' slug=profile.username %}">Profile View</a>
<a href="{% url 'change_password' %}">Change Password</a>`
views.py
class ProfileView(DetailView):
template_name = "user.html"
queryset = User.objects.all()
context_object_name = 'profile'
slug_field = "username"
更改密码视图来自django-allauth。如何将用户名从ProfileView
传递到更改密码视图,以便我可以在change_password.html
页面中显示。
主要问题
由于我已将sidebar.html
包含在两个视图中,因此在ProfileView
中效果很好,但当我导航到change_password
视图时,我收到以下错误
反向&#39; profile_view&#39;使用关键字参数&#39; {&#39; slug&#39;:&#39;&#39;}&#39;未找到。尝试了1种模式:[&#39;(?P [ - \ w。@ + - ] +)/ $&#39;]
错误未显示在ProfileView
中,因为profile.username
会返回一个值,但当我导航到change_password
视图时,我会收到上述错误,因为profile
上下文对象只传递那个特定的视图。我想在整个项目中使用那个context_object。
有一种简单的方法吗?除了构建JSON API?
答案 0 :(得分:0)
我刚看了一下allauth app提供的模板标签。我还没有对此进行测试(我也没有使用该项目),但这看起来就像你在寻找的那样。
在您的模板中,任何模板......
updateGraph(list: Array<Double>) {
let dataEntries = [BarChartDataEntry(x: 0.0, yValues: list)]
let barChartDataSet = BarChartDataSet(values: dataEntries, label: "")
let colorValues = colorList.map( { $0.color })
barChartDataSet.colors = colorValues//ChartColorTemplates.material()
let labelValues = nameList.map( { $0.name })
barChartDataSet.stackLabels = labelValues
let barChartData = BarChartData(dataSet: barChartDataSet)
barChartData.setValueFont(UIFont.systemFont(ofSize: 12.0))
barChart.data = barChartData
}
我找到了答案here。
答案 1 :(得分:0)
我得到了它的工作,谢谢@teewuane
sidebar.html
<a href="{% url 'profile_view' slug=profile.username %}">Profile View</a>
替换为
<a href="{% url 'profile_view' slug=request.user.username %}">Profile View</a>