如何解决当一切看起来都正确时,为什么我的 django 项目中会出现错误 404?
我的 Django 项目中有两个应用程序:basket 和 store。在根 url 文件中,我像这样配置了 urls.py:
from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/',admin.site.urls),path('',include('store.urls',namespace='store')),path('basket/',include('basket.urls',namespace='basket')),
store/urls.py:
from django.urls import path
from . import views
app_name = 'store'
urlpatterns = [
path('',views.all_products,name='all_products'),path('<slug:slug>/',views.product_detail,name='product_detail'),path('category/<slug:category_slug>/',views.category_list,name='category_list')
]
basket/urls.py:
from django.urls import path
from . import views
app_name = 'basket'
urlpatterns = [
path('',views.basket_summary,name='basket_summary'),path('add/',views.basket_add,name='basket_add'),]
请求方式:GET
请求网址:http://127.0.0.1:8000/basket/
筹集者:store.views.product_detail
这是我的store/views.py:
from django.shortcuts import get_object_or_404,render
from .models import *
def product_detail(request,slug):
product = get_object_or_404(Product,slug=slug,in_stock=True)
context = {
'product': product,}
return render(request,'store/products/detail.html',context)
请帮我解决这个问题,我已经被这个问题困扰了很长时间了。
解决方法
如果你想避免 404 错误,试试这个方法
from django.shortcuts import get_object_or_404,render
from .models import *
def product_detail(request,slug):
try:
product = Product.objects.get(slug=slug,in_stock=True)
context = {
'product': product,}
except Product.DoesNotExist:
raise ValidationError('Product Does not exist ')
return render(request,'store/products/detail.html',context
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。