我有一个名为'基金'的应用程序,有两种模式:基金和表现。绩效跟踪基金。我试图做的是使用D3.js绘制性能图。但是我遇到了这个错误:
> / funds / morning-glory-volatility-fund / 的NoReverseMatch使用参数'()'和关键字参数'{}'反转'performance_api' 找到。尝试过1种模式: [ '资金/(P [\瓦特 - ?] +)/性能/ API']
以下是我用来传递JSONResponse:
的观点def performance_api(request, fund_slug):
fund = get_object_or_404(Fund, slug=fund_slug)
data = Performance.objects.filter(fund__name=fund.name) \
.extra(select={'month': connections[Performance.objects.db].ops.date_trunc_sql('month', 'date')}) \
.values('month') \
.annotate(count_items=Count('id'))
return JsonResponse(list(data), safe=False)
和我的基金app的urls.py:
url(r'^(?P<fund_slug>[\w-]+)/performance/api', views.performance_api, name='performance_api'),
还有另一个全局urls.py,其中包含我所有应用的网址。但是为了访问broswer中的performance_api,它看起来像这样:'127.168.1.1/funds/fund_slug/perfomance/api'似乎正在起作用。
至于D3代码大约有40行,所以我只发布似乎导致问题的部分:
d3.json("{% url 'performance_api' %}", function(error, data) {
data.forEach(function(d) {
d.month = parseDate(d.month);
d.count_items = +d.count_items;
});
有关导致此问题的原因以及如何解决问题的任何想法?感谢。
答案 0 :(得分:2)
您需要在fund_slug
代码中提供url
:
{% url 'performance_api' here_fund_slug %}
答案 1 :(得分:1)
performance_api
的网址格式包含一个命名参数(fund_slug
)。为了使url
标记反转此网址,您需要提供此信息,例如
d3.json("{% url 'performance_api' fund_slug="morning-glory-volatility-fund" %}", function(error, data) { //... }