Django URL标签使变量突然为空?

问题描述

奇怪的令人困惑的问题。在我的Django模板中,我可以使用{{item.slug}}显示一个变量,这很好。但是,当我在URL标记中使用相同的变量时,它是一个空变量。例如...

<a href="{{item.slug}}">{{item.name}}</a>

...有效。

<a href="{%url 'charts:ye_songs' start|date:"Y" 'r' 'label' item.slug %}">{{item.name}}</a>

...但是会导致错误,因为item.slug是一个空字符串。

我不知道可能是什么原因造成的。起初,我以为是因为我使用的是UTF-8子弹,但这不是问题,因为它也是使用常规ol的Latin-1 ASCII字符完成的。如果我对变量进行硬编码,则无论我使用ASCII还是UTF-8字符都可以使用。另外,这仅在代码的此部分中发生。其他网址标签没有这个问题。甚至使用'charts:ye_songs'的网址也按预期工作。我还尝试在使用子弹的地方使用item.name。显示var字符串。

链接的url.py路径如下所示。

path('<int:chartyear>/<slug:sor>/<str:chart_type>/<str:slug>',views.ye_songs,name='ye_songs'),

...并且适用于使用此功能的所有功能,但该特定位除外。如果将<str:slug>更改为<slug:slug>,则会显示变量字符串,但会导致一个错误,该错误会影响每个模板中的所有链接,因为我在item.slug中使用UTF-8字符。所以我需要使用<str:

我在Ubuntu 20.04上使用Django 3.1 final和Python 3.8.5。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)