2012-01-25 29 views
13

Tôi đang theo dõi chính thức của Django Tutorial 2 nhưng vì một số lý do không thể tạo trang web quản trị mặc dù thực hiện theo tất cả các bước chính xác theo sự hiểu biết của tôi.Trang web quản trị: TemplateDoesNotExist tại/admin/

Đây là lỗi tôi nhận được:

TemplateDoesNotExist at /admin/ 
admin/login.html 
Request Method: GET 
Request URL: http://127.0.0.1:8000/admin/ 
Django Version: 1.3.1 
Exception Type: TemplateDoesNotExist 
Exception Value:  
admin/login.html 
Exception Location: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/template/loader.py in find_template, line 138 
Python Executable: /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python 
Python Version: 2.7.2 
Python Path:  
['/Users/jcugley/Documents/Programming/Python/Django/mysite', 
'/Library/Python/2.7/site-packages/setuptools-0.6c11-py2.7.egg', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', 
'/Library/Python/2.7/site-packages'] 
Server time: Tue, 24 Jan 2012 18:40:03 -0600 

Lỗi này xảy ra sau khi tôi bỏ ghi chú dòng sau (nhận xét):

### urls.py ### 
from django.conf.urls.defaults import patterns, include, url 

from django.contrib import admin # THIS LINE 
admin.autodiscover() # THIS LINE 

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), # THIS LINE 
) 

Nếu tôi nhận xét họ một lần nữa nó được thoát khỏi những sai sót.

tôi làmdjango.contrib.admin trong INSTALLED_APPS tôi trong settings.py

+0

Bạn đã đặt TEMPLATE_DIRS và TEMPLATE_LOADERS trên settings.py –

+0

TEMPLATE_DIRS trống (không có gì về nó được đề cập trong hướng dẫn) và TEMPLATE_LOADERS có 'django.template.loaders.filesystem.Loader' và 'django.template.loaders. app_directories.Trình tải '(Trình tải mẫu cũng không bao giờ được đề cập) – Jarrod

+0

Bạn có thể dán toàn bộ mã zip vào tài khoản đăng hoặc một thứ gì đó không? –

Trả lời

2

Kể từ khi nó hoạt động trên máy của người khác, và kể từ khi bạn có các thư mục ứng dụng bộ nạp được kích hoạt, site admin cho phép trong INSTALLED_APPS, và đó là tất cả những gì cần lấy mẫu để được phát hiện (ý tôi là, những gì nhiều hơn có thể làm gì?) - Tôi chỉ có thể giả định một cái gì đó là sai với cài đặt django của bạn.

Đây sẽ là một cơ hội tốt để bắt đầu sử dụng virtualenvs và cài đặt một tươi của django để loại trừ các thiết lập của bạn:

cháy lên một thiết bị đầu cuối, điều hướng đến thư mục dự án của bạn (không thực sự quan trọng ...)

pip install virtualenv # if you don't have it. 

virtualenv --no-site-packages env 
# this creates a virtual python environment that doesn't include system packages 

source env/bin/activate 
# this forces your bash session to use that environment 

pip install django 
# installs a fresh copy of django to your new environment 

cd path_to_my_django_project  
# now go to your site directory 

python manager.py runserver 
# visit admin site. 
22

Tôi đã gặp phải vấn đề tương tự và tôi buộc phải tải xuống bản nhạc django.

pip install -r requirements.txt --ignore-installed --force-reinstall --upgrade --no-cache-dir 

Lưu ý: Tôi biết rằng tùy chọn --no-cache-dir là cần thiết, tôi không chắc chắn rằng các tùy chọn khác là bắt buộc.

+4

Điều này đã sửa nó cho tôi (sử dụng virtualenv). Tôi nghĩ rằng một trong hai virtualenv, pip hoặc người dùng (có lẽ) bị nhầm lẫn và django không cài đặt đúng khi sử dụng virtualenv. – Scott

+0

Có thể liên quan đến cài đặt thông qua ssl hoặc nhiều môi trường ảo? Tôi đã gặp lỗi 'SNIMissingWarning' và' InsecurePlatformWarning' khi sử dụng điều này, nhưng đã tạo một môi trường ảo mới và nó hoạt động, sau đó thực hiện cùng một lệnh trên virtualenv trước đó và nó hoạt động (?) Nhưng đã ném những lỗi tương tự. – bozdoz

0

Tôi gặp lỗi tương tự, sau vài lần pip cài đặt và gỡ cài đặt Django, nó vẫn không hoạt động. Sau đó, tôi tải về tập tin Django tar.gz từ trang web Django, và cài đặt từ tập tin này, tất cả là tốt. Hy vọng rằng điều này có thể giúp ai đó.

2

Đã xảy ra sự cố tương tự. Kỳ lạ là tôi thấy rằng đôi khi templatemedia không được sao chép từ django/contrib/admin của bạn. Vì vậy, bạn cần phải sao chép chúng vào thư mục env django ảo của bạn.

tức từ thư mục /venv/lib/python2.7/site-packages/django/contrib của bạn, bạn cần phải

ln -s ~/Sites/your_dj_app/venv/django/contrib/admin/templates templates

ln -s ~/Sites/your_dj_app/venv/django/contrib/admin/media media

Tôi rất vui mừng rằng vấn đề của tôi được giải quyết nhưng rất khó chịu mà tôi đã phải dành hơn một giờ gỡ lỗi nó.

Hy vọng bạn sẽ không phải :)

+0

[Cài đặt lại Django với tùy chọn --no-binary giải quyết vấn đề này mà không phải tạo lại các liên kết tượng trưng] (https://stackoverflow.com/a/43747016/3748764). – user3748764

0

Mặc dù tính hữu dụng của chúng, các câu trả lời nói trên là một phần. Tôi cho rằng nhà phát triển nên biết những gì đang xảy ra ở phía sau, tức là "làm thế nào" ngoại lệ này được nâng lên.

Như người ta có thể thấy trong trường hợp ngoại lệ là Ngoại lệ là TemplateDoesNotExist và tên giá trị là đường dẫn và có sự cố xảy ra với tệp "loader.py". Mặc dù tôi đã sử dụng Django 1.1.4, tôi khá chắc chắn ngoại lệ được nâng lên vì dòng (trong loader.py), nơi os.path.isdir (template_dir) đang được kiểm tra. Nó không thể tìm thấy thư mục mẫu (thư mục) trong thư mục django, nằm trong thư mục site-package trong thư mục Lib của python.

Trực giác người ta có thể nói đó là do cài đặt không phù hợp của django. Đó là, tuy nhiên, một bài tập tốt để tìm ra nguyên nhân của ngoại lệ bằng cách lục lọi thông qua nguồn. Khi lỗi này xảy ra trong dự án của tôi, tôi đã không cài đặt lại django, thay vào đó tôi sao chép các thư mục từ gốc (C:/Python27/django/contrib) - vâng tôi đang sử dụng Windows - để đối tác của nó trong gói trang web và nó đã làm việc !

+0

Hãy xem [URL] này (http://stackoverflow.com/help) sẽ rất tiện lợi để nâng chất lượng lên –

-1

Tôi nghĩ rằng có một số gói mà bạn không cài đặt trong INSTALLED_APPS, trong trường hợp của tôi, tôi cài đặt 'import_export' kể từ khi tôi sử dụng 'importexportmodels

4

Tôi đang sử dụng Django Version 1.9.7 và khi cố gắng thêm admin_tools (menu và bảng điều khiển) cho ứng dụng của tôi, tôi đã có một vấn đề tương tự. Tôi tìm thấy tôi đã phải làm ba việc:

  1. Chỉnh sửa tùy chọn INSTALLED_APPS trong settings.py như sau (lưu ý rằng admin_tools đến trước django contrib, 'mỏ' là tên của ứng dụng của tôi):

    INSTALLED_APPS = [ 
        'admin_tools', 
        'admin_tools.theming', 
        'admin_tools.menu', 
        'admin_tools.dashboard', 
        'django.contrib.admin', 
        'django.contrib.auth', 
        'django.contrib.contenttypes', 
        'django.contrib.sessions', 
        'django.contrib.messages', 
        'django.contrib.staticfiles', 
        'mines' 
    ] 
    
  2. chỉnh sửa các thiết lập TEMPLATE trong file settings.py như sau (lưu ý tùy chọn 'bộ tải' đó đã thêm vào, và rằng APP_DIRS hiện đang thiết lập là false):

    TEMPLATES = [{ 
        'BACKEND': 'django.template.backends.django.DjangoTemplates', 
        'DIRS': [], 
        'APP_DIRS': False, 
        'OPTIONS': { 
         'context_processors': [ 
          'django.template.context_processors.debug', 
          'django.template.context_processors.request', 
          'django.contrib.auth.context_processors.auth', 
          'django.contrib.messages.context_processors.messages', 
         ], 
         'loaders': [ 
          'django.template.loaders.filesystem.Loader', 
          'django.template.loaders.app_directories.Loader', 
          'admin_tools.template_loaders.Loader', 
         ], 
        }, 
    }] 
    
  3. Và rồi cuối cùng tôi đã cập nhật tập tin urls.py của tôi như sau (lưu ý bao gồm cho admin_tools url):

    from django.conf.urls import include,url 
    from django.contrib import admin 
    from mines.views import SummaryByMapIcon 
    
    urlpatterns = [ 
        url(r'^admin_tools/', include('admin_tools.urls')), 
        url(r'^admin/', admin.site.urls), 
        url(r'^summarybymapicon$', SummaryByMapIcon, name='summarybymapicon'), 
    ] 
    
+0

Nếu bạn đang chuyển đổi giữa các phiên bản Python/Django, vấn đề của OP có thể xảy ra và câu trả lời của Abrie tóm tắt những gì Tôi cần thiết để có được một chi nhánh cũ (mà đã không được di chuyển đến Python3 và Django 1,10) để làm việc với virtualenv của tôi mà tôi đã sử dụng với chi nhánh phát triển mới nhất của tôi. – sage

2

tôi giải quyết vấn đề này bằng cách cài đặt cùng với Django --no-cache-dir tùy chọn:

pip uninstall django 
pip install django --no-cache-dir 

Giải quyết nhờ câu trả lời here.

0

Tôi chạy vào vấn đề tương tự cố gắng để cấu hình django-admin-tools cho Django 2.0.2

Cuối cùng tôi đã nhận nó làm việc. Đây là cài đặt TEMPLATES của tôi.

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')], 
     'APP_DIRS': False, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
      'loaders' : [ 
       'django.template.loaders.filesystem.Loader', 
       'django.template.loaders.app_directories.Loader', 
       'admin_tools.template_loaders.Loader', 
       ] 
     }, 
    }, 
] 

Điều này làm việc ngay cả khi tôi đã bỏ qua mẫu quản trị viên mặc định.

Chỉ cần nhớ lưu ý nơi đặt các ứng dụng django-admin-tools. Xem câu trả lời của @Abrie Nel ở trên.

Các vấn đề liên quan