无法使用django在url中添加变量作为参数
我用的是django版本。2.0.3,使用python 3.6和以下模型无法使用django在url中添加变量作为参数,django,python-3.x,django-templates,Django,Python 3.x,Django Templates,我用的是django版本。2.0.3,使用python 3.6和以下模型 @python_2_unicode_compatible class ArticleDb(models.Model): slug = models.SlugField(primary_key=True, unique=True, blank=True) title = models.CharField(max_length=200, validators=[MinLengthValidator(5)])
@python_2_unicode_compatible
class ArticleDb(models.Model):
slug = models.SlugField(primary_key=True, unique=True, blank=True)
title = models.CharField(max_length=200, validators=[MinLengthValidator(5)])
content = models.TextField(max_length=5000)
然后我有以下模板
{% for article in articles %}
<tr>
<td>{{ article.title }}</td>
<td><a href="{% url 'view_article' slug_addr= article.slug %}">{{ article.slug }}</a></td>
</tr>
{% endfor %}
{%用于文章%中的文章]
{{article.title}}
{%endfor%}
下面是url.py
...
path('code/<slug:slug_addr>/', views.ViewArticle.as_view(), name="view_article"),
...
。。。
路径('code/',views.ViewArticle.as_view(),name=“view_article”),
...
所以问题是slug\u addr=如果我分配一个字符串值,它会工作,但是如果我放置像article.slug这样的模板变量,它不会工作,尽管{article.slug}}可以工作,但每次我得到这个错误:
Reverse for 'view_article' with keyword arguments '{'slug_addr': ''}' not found. 1 pattern(s) tried: ['code\\/(?P<slug_addr>[-a-zA-Z0-9_]+)\\/$']
未找到具有关键字参数“{'slug\u addr':''}”的“查看文章”的反向。尝试了1个模式:[“代码\\/(?P[-a-zA-Z0-9\\]+)\\/$”
{articles%}
{{article.title}}
/tr>
{%endfor%}
您不必传递名称,因为url中只有一个参数。相同的错误:未找到带参数“(“”,)”的“查看文章”的反向。尝试了1个模式:[“代码\\/(?P[-a-zA-Z0-9\\]+)\\/$”
{% for article in articles %}
<tr>
<td>{{ article.title }}</td>
<td><a href="{% url 'view_article' article.slug %}">{{ article.slug }}</a></td>
/tr>
{% endfor %}