URL配置和404错误

时间:2017-11-19 16:50:07

标签: django http-status-code-404 url-routing

我正在处理个人Django项目,我有404错误,但我无法弄清楚原因。

我尝试了以下配置: Urls.py

url(r'composer/(?P<slug>.+)$', views.articles_plats_composer, name='articles_plats_composer'),

我的观点:

def articles_plats_composer(request, slug):
sous_categories_articles = get_object_or_404(Sous_Categories_Article, slug=slug)
articles = sous_categories_articles.article_set.all()
return render(request, "commander-suite-composer.html",{'sous_categories_articles':sous_categories_articles, 'articles':articles})

我的模板:

<a href="{% url 'articles_plats_composer' article.slug %}"></a>

使用此配置可​​以正常工作。当我尝试只使用id时,它可以工作(相同类型的代码)。

但是,当我尝试使用以下代码获取slug和id url时,我收到404错误。

我的网址文件

url(r'composer/(?P<slug>.+)-(?P<id>\d+)$', views.articles_plats_composer, name='articles_plats_composer'),

我的观点:

def articles_plats_composer(request, slug, id):
sous_categories_articles = get_object_or_404(Sous_Categories_Article, slug=slug, id=id)
articles = sous_categories_articles.article_set.all()
return render(request, "commander-suite-composer.html",{'sous_categories_articles':sous_categories_articles, 'articles':articles})

我的模板:

<a href="{% url 'articles_plats_composer' article.slug article.id %}"></a>

我不明白为什么,它是分开的,但是当我把它们结合起来时,它就不起作用......

提前感谢您的帮助

Singertwist

2 个答案:

答案 0 :(得分:1)

在模板中尝试此操作:

slug=article.slug id=article.id

答案 1 :(得分:1)

所以,我找到了答案。

def articles_plats_composer(request, id, slug):
sous_categories_articles = get_object_or_404(Sous_Categories_Article, id=id, slug=slug)
articles = sous_categories_articles.article_set.all()
return render(request, "commander-suite-composer.html",{'sous_categories_articles':sous_categories_articles, 'articles':articles})

感谢您的帮助。