回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有这样的URL结构:
<code>page/section/subsection/article</code>,其中<code>section</code>、<code>subsection</code>和<code>article</code>是用户生成的slug名称。你知道吗</p>
<p>如何编写<code>urlpatterns</code>?
我这样做,但可能存在更好的方法?你知道吗</p>
<pre><code>urlpatterns = [
url(r'^$', views.index),
url(r'^(?P<slug>[-\w]+)/$', views.section),
url(r'^(?P<slug>[-\w]+)/(?P<subslug>[-\w]+)/$', views.subsection),
url(r'^(?P<slug>[-\w]+)/(?P<subslug>[-\w]+)/(?P<articleslug>[-\w]+)/$', views.article)
]
</code></pre>
<p>我的观点:</p>
<pre><code>def index(request):
return render(request, 'MotherBeeApp/index.html', {})
def section(request, slug):
sections = Section.objects.filter(page=slug)
if sections:
return render(request, 'MotherBeeApp/section.html', {'Sections': sections})
else:
return render(request, 'MotherBeeApp/404.html', status=404)
def subsection(request, slug, subslug):
subsection = Section.objects.get(link_title=subslug)
articles = Article.objects.filter(section=subsection.pk)
page_title = subsection.title
return render(request, 'MotherBeeApp/subsection.html', {'Articles': articles, 'PageTitle': page_title})
def article(request, slug, subslug, articleslug):
article = Article.objects.get(link_title=articleslug)
return render(request, 'MotherBeeApp/article.html', {'Article': article})
</code></pre>