【发布时间】:2024-05-22 05:35:02
【问题描述】:
当我输入localhost:8000 或localhost:8000/store 时,两个视图都与home/index.html 相同。
我希望这些路径设置不同的视图。
urls.py
from django.conf.urls import url
from django.contrib import admin
urlpatterns = [
url(r'', 'home.views.index', name='view_home'),
url(r'^admin/', admin.site.urls),
url(r'^store/$', 'store.views.store_list', name='view_store_list'),
url(r'^store/(?P<store_id>\d+)$', 'store.views.single_store')
]
views.py - 主页
from django.shortcuts import render
def index(request):
return render(
request,
'index.html'
)
views.py - 存储
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from .models import Store # fetch Store model
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger # paginate
def store_list(request):
store_list = Store.objects.all()
paginator = Paginator(store_list, 2)
page = request.GET.get('page')
try:
stores = paginator.page(page)
except PageNotAnInteger:
stores = paginator.page(1)
except EmptyPage:
stores = paginator.page(paginator.num_pages)
return render(
request,
'index.html',
{
'stores': stores,
}
)
干杯!
编辑:
我也试过url(r'^$', 'home.views.index', name='view_home'),,但结果相同。
【问题讨论】:
-
能否贴出相关视图代码?
-
为什么你对两个不同的视图使用相同的模板
index.html? -
不一样吗?这些模板彼此具有不同的路径。
home/templates/index.html和store/templates/index.html -
"这些模板有不同的路径。home/templates/index.html 和 store/templates/index.html" 是 home 和 store 是你的应用程序的名称?
-
@mhassan 是的!这些是我同一个项目中的应用程序名称
标签: python django django-urls