【发布时间】:2021-02-06 01:24:29
【问题描述】:
我想知道是否可以在没有任何额外前缀的情况下访问所有页面及其详细信息页面。
例子:
'''
/vegetables
/carrot --> (detail page for vegetables)
/fruits
/apple --> (detail page for fruits)
'''
示例 URL 模式,我根据要求添加视图。
#urls.py
urlpatterns = [
path('', views.index, name='index'),
path('fruits/', views.all_fruits, name='fruits'),
path('vegetables/', views.all_vegetables, name='vegetables'),
path('<slug:slug>/', views.fruit_detail, name='fruit'),
path('<slug:slug>/', views.vegatable_detail, name='vegetable'),
]
#views.py
from .models import Fruit, Vegetable
def index(request):
return render (request, 'index.html')
def all_fruits(request):
fruits=Fruit.objects.all()
return render(request, 'fruits.html', {'fruits':fruits})
def all_vegetables(request):
vegetables=Vegetable.objects.all()
return render(request, 'vegetables.html', {'vegetables':vegetables})
def fruit_detail (request, slug):
fruit = get_object_or_404(Fruit, slug=slug)
return render(request, 'fruit_detail.html', {'fruit':fruit})
def vegetable_detail (request, slug):
vegetable = get_object_or_404(Vegetable, slug=slug)
return render(request, 'vegetable_detail.html', {'vegetable':vegetable})
可预见的;尝试访问蔬菜详情页面时,由于使用水果的视图而报错。
提前感谢您的帮助和反馈。
【问题讨论】:
-
请发表你的看法
-
@AndreyBorzenko 我添加了视图。
-
我发布了一个相当长的答案,这并不完全是对您问题的代码答案,而是对新 Django 开发人员的建议。如果你真的对你的问题的答案是什么我不推荐我也可以发布它
-
@quqa123 您的建议和解释非常有价值,我很感激。另外,我知道显示没有前缀的详细信息页面效率低下,但我想体验一下,所以如果您也可以发布问题的答案,我会很高兴。
-
如果您觉得答案有帮助,请点赞,以便其他人也可以将其用作有效的学习资源
标签: python django url django-urls