您现在的位置是:主页 > news > 衡水网站托管/今天的头条新闻

衡水网站托管/今天的头条新闻

admin2025/5/16 6:14:52news

简介衡水网站托管,今天的头条新闻,Wordpress按钮添加跳转,临安区规划建设局网站在Django项目学习使用elasticsearch中,遇到了这样一个问题。报错: django.urls.exceptions.NoReverseMatch: Reverse for...这个错误,其实是对应的html语句引用url找不到对应的路由导致的,可能是url.py写错,也可能是在…

衡水网站托管,今天的头条新闻,Wordpress按钮添加跳转,临安区规划建设局网站在Django项目学习使用elasticsearch中,遇到了这样一个问题。报错: django.urls.exceptions.NoReverseMatch: Reverse for...这个错误,其实是对应的html语句引用url找不到对应的路由导致的,可能是url.py写错,也可能是在…

在Django项目学习使用elasticsearch中,遇到了这样一个问题。报错:

django.urls.exceptions.NoReverseMatch: Reverse for...

这个错误,其实是对应的html语句引用url找不到对应的路由导致的,可能是url.py写错,也可能是在模板中的a标签没有获取到正确的参数、无法组成正确的url。

比如:

# 使用关联查询
news1 = models.HotNews.objects.select_related("news").only("news_id", "news__title", "news__image_url").filter(is_delete=False).order_by("priority")

for i in news:print(1)
这之中,每一个i都是HotNews对象。
通过debug模式,可以看到,它返回的数据类型是:

i: {...,"id": ..,"news_id": ..,"priority": ..,news:{...,#这里的内容是关联查询到news表里面才有的字段的内容},
}

而在html文件中:

 <a href="{% url 'news:news_detail' one_hotnews.news.id %}">{{ one_hotnews.title }}</a><p class="news-details">{{ one_hotnews.news.digest }}</p><span class="news-type">{{ one_hotnews.news.tag.name }}</span>

这是可以正常获取到的。
而把查询语句改成:

news = models.News.objects.only("title", "image_url", "digest").filter(is_delete=False).order_by("-clicks")

同样的方法,得到的数据结构是:

i: {...,"id": ..,"news_id": ..,"priority": ..,#这里的内容是news表里面有的字段的内容
}

如果上述的html文件内容不变的话

<a href="{% url 'news:news_detail' one_hotnews.news.id %}">{{ one_hotnews.title }}</a><p class="news-details">{{ one_hotnews.news.digest }}</p><span class="news-type">{{ one_hotnews.news.tag.name }}</span>

是什么都获取不到的,所以url命名空间会报错。
这时需要改成:

<a href="{% url 'news:news_detail' one_hotnews.id %}">{{ one_hotnews.title }}</a><p class="news-details">{{ one_hotnews.digest }}</p><span class="news-type">{{ one_hotnews.tag.name }}</span>

注意:另外需要注意的是:使用关联查询的时候,如果只是用select_related而没有查询关联表的字段的话,一样会报错的。