我正在使用DJango项目中的2个应用程序:"客户"和#34;供应商"。每个应用程序都有一个名为" testindex.html"。
的HTML文件每当我输入:
正确的页面会显示
如果我输入
来自http://myhost/customer/basic_info的页面会显示
我发现这是由于缓存(因为两个应用程序都使用" testindex.html")。再次," testindex.html"是缓存。
如何解决这个问题?
TIA
详情如下。我定义了以下视图:
项目的urls.py
urlpatterns = [
... snip ...
url(r'^customer/', include('libmstr.customer.urls')),
url(r'^vendors/', include('libmstr.vendors.urls')),
]
客户的views.py
from django.shortcuts import render
def basic_info(request):
return render(request, 'testindex.html', {})
views.py for vendors
from django.shortcuts import render
def basic_info(request):
return render(request, 'testindex.html', {})
urls.py for customers
from django.conf.urls import url
from . import views
# list of templates
app_name = 'customer'
urlpatterns = [
url(r'^basic_info/$', views.basic_info, name='basic_info'),
]
供应商urls.py
from django.conf.urls import url
from . import views
# list of templates
app_name = 'vendors'
urlpatterns = [
url(r'^basic_info/$', views.basic_info, name='basic_info'),
]
答案 0 :(得分:1)
听起来你有两个模板,customers/templates/testindex.html
和vendors/templates/testindex.html
。
当您调用render(request, 'testindex.html', {})
时,应用程序目录模板加载程序会在模板目录中搜索INSTALLED_APPS
中的每个应用程序,并在第一次找到匹配项时停止。如果customers
高于vendors
INSTALLED_APPS
,那么它将始终使用客户模板。
出于这个原因,Django建议您为模板customers/templates/customers/testindex.html
和vendors/templates/vendors/testindex.html
命名,并更改您的视图以使用customers/testindex.html
和vendors/testindex.html
。这样可以避免冲突。