2012-03-16 27 views
22

Tôi gặp một số vấn đề với quản trị viên Django.Quản trị viên Django DoesNotExist tại/admin/

sau syncdb, kết quả là:

Creating tables ... 
    Installing custom SQL ... 
    Installing indexes ... 
    No fixtures found. 

này có nghĩa là gì?

Dù sao, khi tôi truy cập vào bảng điều khiển trang web quản trị http://www.example.com/admin/, tôi nhận được tin nhắn này:

DoesNotExist at /admin/ 
Site matching query does not exist. 

setting.py chứa:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    # Uncomment the next line to enable the admin: 
    'django.contrib.admin', 
) 

ur.py chứa:

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

# Uncomment the next two lines to enable the admin: 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    # Examples: 
    # url(r'^$', 'rshd.views.home', name='home'), 
    # url(r'^rshd/', include('rshd.foo.urls')), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    url(r'^admin/', include(admin.site.urls)), 
) 
+0

chỉ cần sử dụng 'từ nhập django.conf.urls.defaults *' và 'từ cài đặt nhập django.conf trong tệp' urls.py' của bạn và kiểm tra –

+0

nhờ Harshith JV Nhưng không thay đổi bất kỳ điều gì –

+0

bạn có thể thấy kết quả cho syncdb không chứa bảng tạo cho admin !!! –

Trả lời

73

Bạn không thực sự cần khung sites nếu bạn chỉ chạy một trang web từ dự án, vì vậy việc sửa chữa đơn giản nhất sẽ được loại bỏ mục sau từ INSTALLED_APPS của bạn và lỗi sẽ biến mất:

'django.contrib.sites' 

Bạn cũng có thể tái tạo các đối tượng Site mất tích từ vỏ. Chạy python vỏ manage.py và sau đó:

from django.contrib.sites.models import Site 
Site.objects.create(pk=1, domain='www.example.com', name='example.com') 
+0

ya xóa ''django.contrib.sites'' nên hoạt động –

+0

Cảm ơn vì nỗ lực của bạn Mr-Ramandeep Singh –

+0

Bất cứ lúc nào .... !!!! –

1

chỉ cố định vấn đề bằng một cách khác:

tôi sử dụng PostgreSQL và Django 1,45 ... như tôi loại bỏ các trang web www.example.com và thêm một trang web www.xxx.com mới nó đã được thêm vào như ID = 2 'gây ra PostgreSQL không quay trở lại trong số ID và đăng nhập và đăng xuất Django-Sites bằng cách nào đó bị ràng buộc chỉ để ID = 1 trang web trong DB của bạn ...

Tôi đã đi đến DB PostgreSQL của mình và thay đổi ID của www.xxx.com thành 1 và sau đó tôi có thể thấy trang đăng nhập và đăng xuất lại :)

btw. [vâng, bạn chỉ có thể xóa django.contrib.sites khỏi settings.py của bạn nếu bạn không cần nó ^^ (nhưng tôi chưa thử cái này trong trường hợp của tôi, với số ID vấn đề)]

hy vọng nó sẽ hoạt động cho những người dùng khác! ;)

+0

Nếu đúng như vậy, ít nhất hãy thay đổi SITE_ID trong tệp settings.py của bạn thay vì chỉnh sửa db theo cách thủ công. – Atrus

3

Cùng một vấn đề cũng đột nhiên đến với tôi, và bạn biết có rất nhiều giải pháp. Tuy nhiên, lý do của vấn đề đột ngột này là gì?

Sau khi đào sâu, tôi thấy lý do là, chúng tôi bỏ qua một bước trong hành động syncdb đầu tiên.

Khi bạn có syncdb đầu tiên, django sẽ yêu cầu bạn tạo tài khoản mặc định, nếu bạn không nhập trong chương trình tương tác này, đối tượng trang web đó sẽ không được tạo tự động.

Vì vậy, hãy cẩn thận về điều này. Tôi đang sử dụng django 1.3.1, không biết liệu phiên bản mới nhất đã giải quyết vấn đề này chưa.

-1

Kiểm tra trình quản lý tác vụ Cửa sổ của bạn và đảm bảo rằng có 1 tên quy trình 'python.exe' đang chạy. Nếu có nhiều, xóa tất cả chúng sau đó khởi động lại máy chủ. Giải pháp này làm việc cho tôi.

0

Bạn có thể sửa lỗi này nếu bạn đang sử dụng django.contrib.sitesmà không loại bỏ nó bằng cách thay đổi giá trị trong SITE_ID = 1settings.py tập tin.

Nó được xảy ra với tôi khi tôi đã thay đổi tên miền trên máy chủ của tôi, tôi đã xóa tên miền cũ từ http://mynewdomainname.com/admin/sites/site/ bằng tay, và kỷ lục miền cũ trong cơ sở dữ liệu có id = 1, Tôi cũng đã thêm tên miền mới mynewdomainname.com và nó được id là id = 2 , Tôi vừa thay đổi thành SITE_ID = 2 và lỗi đã biến mất SITE_ID đề cập đến "pk" hiện tại của tên miền đang hoạt động mà bạn sử dụng làm mặc định. Trong mã:

>>> from django.contrib.sites.models import Site 
>>> # get_current() came from SiteManager class manager, 
>>> # see site-packages/django/contrib/sites/models.py 
>>> current_site = Site.objects.get_current() 
>>> print(current_site.pk) 
2 
>>> print(current_site.domain) 
'http://mynewdomainname.com' 

này xảy ra sau khi settings.py thay đổi

SITE_ID = 2 

Hãy cẩn thận về id tên miền hiện tại trang web django ứng dụng.

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