我在構建基於Django的站點時遇到了問題; 我需要在一開始使用Ajax運行幾個模板更新:Django Ajax請求 - 500內部服務器錯誤與「匹配查詢不存在」。錯誤
$(document).ready(function() {
var trees = ['1','2','3','4','5','6']
for (i = 0; i < trees.length; i++) {
$.ajax({
'url': '/structure/showtrees',
'data': {
number:trees[i]
},
'type': 'GET',
'success': function (data) {
$("#phylo"+i).html(data);
}
});
};
});
這是通過urls.py重定向看起來是這樣的:從 進口django.conf.urls模式,網址
from structure import views
from django.conf import settings
urlpatterns = patterns('',
...,
...,
url(r'^showtrees', views.RenderTrees, name='render')
)
內「views.py」爲目標函數:
def RenderTrees(request):
print(request.session)
number = request.session.GET['number']
tree = open('static/home/images/00'+number+'_tree.xml').read()
return render(request, 'tree'+number+'.html', {'tree':tree,'num':number})
我有「打印(會話)」有作爲標記,但它永遠不會diplayed。 在頁面加載我得到:
GET http://localhost:8000/structure/showtrees?number=1 500 INTERNAL SERVER ERROR 464ms
和響應是
DoesNotExist at /structure/showtrees
Structure matching query does not exist.
我尋尋覓覓,我找不到任何回答這個問題。
編輯: 完整回溯這裏:
DoesNotExist at /structure/showtrees
Structure matching query does not exist.
Request Method: GET
Request URL: http://localhost:8000/structure/showtrees?number=1
Django Version: 1.8.4
Python Executable: /usr/bin/python3
Python Version: 3.4.3
Python Path: ['/vagrant/protwis', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '
/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages'
]
Server time: Fri, 25 Sep 2015 19:05:08 +0200
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'debug_toolbar',
'rest_framework',
'rest_framework_swagger',
'django_nvd3',
'common',
'api',
'documentation',
'news',
'pages',
'home',
'protein',
'family',
'residue',
'alignment',
'similaritysearch',
'similaritymatrix',
'structure',
'ligand',
'interaction',
'mutation',
'phylogenetic_trees',
'sitesearch',
'build_gpcr')
Installed Middleware:
('debug_toolbar.middleware.DebugToolbarMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/vagrant/protwis/structure/views.py" in StructureDetails
64. crystal = Structure.objects.get(pdb_code__index=pdbname)
File "/usr/local/lib/python3.4/dist-packages/django/db/models/manager.py" in manager_method
127. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/django/db/models/query.py" in get
334. self.model._meta.object_name
Exception Type: DoesNotExist at /structure/showtrees
Exception Value: Structure matching query does not exist.
Request information:
GET:
number = '1'
POST: No POST data
FILES: No FILES data
COOKIES:
djdt = 'hide'
csrftoken = 'fH9XuekPOAU6drwD8tHHGBecE7YxMqms'
sessionid = 'lf0wjer4wyyp98ez9y5ngbcawb1xxbak'
您是否檢查過.xml文件是否存在? – Gocht
是的,它存在,它很好。正如我所說的,這個印刷品根本沒有被調用。 – Mee
你可以做一個print(「call」)來確保視圖被調用嗎? – Firedrake969