Django缓存在前端

时间:2017-12-05 17:19:58

标签: django caching

我正在使用DJango项目中的2个应用程序:"客户"和#34;供应商"。每个应用程序都有一个名为" testindex.html"。

的HTML文件

每当我输入:

  

http://myhost/customer/basic_info

正确的页面会显示

如果我输入

  

http://myhost/vendors/basic_info

来自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'),
]

1 个答案:

答案 0 :(得分:1)

听起来你有两个模板,customers/templates/testindex.htmlvendors/templates/testindex.html

当您调用render(request, 'testindex.html', {})时,应用程序目录模板加载程序会在模板目录中搜索INSTALLED_APPS中的每个应用程序,并在第一次找到匹配项时停止。如果customers高于vendors INSTALLED_APPS,那么它将始终使用客户模板。

出于这个原因,Django建议您为模板customers/templates/customers/testindex.htmlvendors/templates/vendors/testindex.html命名,并更改您的视图以使用customers/testindex.htmlvendors/testindex.html。这样可以避免冲突。