2010-06-06 39 views
28

Tôi đã lừa một số ứng dụng django và chất liệu cho quỹ của riêng tôi và cho đến nay tất cả mọi thứ đã được làm việc tốt.mô hình không hiển thị trong quản trị django

Bây giờ tôi vừa tạo dự án mới (django 1.2.1) và gặp sự cố từ khoảnh khắc thứ nhất.

Tôi đã tạo ứng dụng mới - trò chơi và trò chơi mô hình mới. tôi đã tạo ra admin.py và đưa những thứ liên quan vào nó. Ran syncdb và đi kiểm tra vào admin. Mô hình không hiển thị ở đó.

tôi tiến hành kiểm tra và doublecheck và đọc qua đề tương tự trước đó: Registered models do not show up in admin Django App Not Showing up in Admin Interface

Nhưng như xa như tôi có thể nói, họ không giúp tôi một trong hai. Có lẽ ai đó có thể chỉ ra điều này cho tôi.

models.py trong ứng dụng trò chơi:

# -*- coding: utf-8 -*- 
from django.db import models 

class Game(models.Model): 
     type = models.IntegerField(blank=False, null=False, default=1) 
     teamone = models.CharField(max_length=100, blank=False, null=False) 
     teamtwo = models.CharField(max_length=100, blank=False, null=False) 
     gametime = models.DateTimeField(blank=False, null=False) 

admin.py trong ứng dụng trò chơi:

# -*- coding: utf-8 -*- 
from jalka.game.models import Game 
from django.contrib import admin 

class GameAdmin(admin.ModelAdmin): 
     list_display = ['type', 'teamone', 'teamtwo', 'gametime'] 

admin.site.register(Game, GameAdmin) 

dự án settings.py:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
) 

ROOT_URLCONF = 'jalka.urls' 

TEMPLATE_DIRS = (
     "/home/projects/jalka/templates/" 
) 

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'game', 
) 

urls.py:

from django.conf.urls.defaults import * 

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

urlpatterns = patterns('', 
     # Example: 
     # (r'^jalka/', include('jalka.foo.urls')), 
     (r'^admin/', include(admin.site.urls)), 
) 

Alan.

Trả lời

15

Hmmmm ... Hãy thử thay đổi bao gồm các ứng dụng của bạn trong settings.py:

Từ:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'game', 
    .... 

Để:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'YOUR_PROJECT.game',# OR 'YOUR_PROJECT.Game' 
+0

Đó là một điều cần cố gắng thực sự. Nhưng nếu đó thực sự là trường hợp, thì tôi nghi ngờ mô hình sẽ hiển thị trong cơ sở dữ liệu anyway. Nhưng tôi sẽ thử nó. chỉ trong trường hợp. –

+0

Có vẻ như đây là nó. Có django thực sự đi nghiêm ngặt hơn liên quan đến một số công cụ? Giống như tôi phát hiện ra rằng 'vượt qua' trong bối cảnh bộ vi xử lý đã tạo ra lỗi và tôi đã phải thay thế vượt qua với trở lại {} để thoát khỏi các lỗi (thêm ở đây - http://groups.google.com/group/django-users/ browse_thread/thread/144fa6b67db420f/ec98c74e0606cbe3) –

+3

Một khả năng khác ở đây là bạn đã đăng nhập vào giao diện quản trị với tư cách là người dùng không có quyền thay đổi mô hình đó; trong trường hợp đó, mô hình sẽ không hiển thị ngay cả khi mọi thứ khác là chính xác. Như vậy trong những trường hợp này khi cố gắng gỡ lỗi tốt nhất là đảm bảo rằng bạn đã đăng nhập với tư cách người dùng quản trị, để loại trừ vấn đề quyền. –

3

Đây có thể là rất hiếm nhưng Tôi đã có một vấn đề ngày hôm nay, nơi các điều khoản trên file admin.py tôi đã tạo ra đã bị hỏng và do đó làm cho nó không thể đọc được bởi dj ango. Tôi đã xóa tệp và tạo lại thành công.

Hy vọng rằng sẽ tiết kiệm một người nào đó, họ có nên vấp ngã ở đây với vấn đề của tôi hay không.

6

Tôi biết điều này đã được trả lời và chấp nhận, nhưng tôi cảm thấy muốn chia sẻ giải pháp của mình cho vấn đề này là gì, có lẽ nó sẽ giúp người khác.

My INSTALLED_APPS trông như thế này:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'core', # <---- this is my custom app 
    # Uncomment the next line to enable the admin: 
    'django.contrib.admin', 
    'south', 
    # Uncomment the next line to enable admin documentation: 
    # 'django.contrib.admindocs', 
) 

Xem, tôi đặt ứng dụng của tôi trước khi ứng dụng quản trị viên của Django, và dường như nó tải chúng theo thứ tự đó. Tôi chỉ cần di chuyển ứng dụng của mình ngay bên dưới quản trị viên và nó bắt đầu hiển thị :)

28

Sự cố được báo cáo có thể do bạn bỏ qua đăng ký mô hình cho trang quản trị.Điều này có thể được thực hiện, tạo ra một tập tin admin.py theo bạn ứng dụng, và có đăng ký các mô hình với:

admin.site.register(MyModel) 
+1

Câu trả lời này được đánh giá cao nhất thế nào? Mã của tôi cho thấy rằng tôi đã có admin.site.register ... và câu trả lời được chọn là đúng .. vì vậy wtf ... –

+3

Vì mọi người nhập "mô hình không hiển thị trong quản trị" vào Google, hãy thử tất cả các giải pháp trên đầu tiên trang SO họ tìm thấy, và upvote bất cứ điều gì làm việc: -D – andyhasit

+0

Vẫn xếp hạng ... XD @andyhasit đẹp bắt! – Dos

0

Thêm vào những gì Saff nói, bạn settings.py nên như thế này:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'YOUR_PROJECT', 
    # And 
    'YOUR_PROJECT.Foo', 
    'YOUR_PROJECT.Bar', 
) 
0

Tôi cũng sẽ muốn thêm, rằng tôi đã làm tất cả mọi thứ những câu trả lời cho biết, ngoại trừ tôi đã không nhập vào dòng lệnh sudo service apache2 restart mà tôi cần thiết để thực hiện các thay đổi có hiệu lực. (Bởi vì tôi đã thử nghiệm trên một máy chủ sống trên cổng 80 trên các dịch vụ web amazon. Tôi cũng đang sử dụng một hệ điều hành Ubuntu.) Điều đó đã giải quyết nó cho tôi. Tôi hy vọng điều này có thể giúp ai đó.

1

Tôi đang sử dụng đại dương kỹ thuật số và cũng gặp sự cố này. Giải pháp là một dịch vụ khởi động lại. Tôi đã từng

dịch vụ gunicorn khởi động lại

và đó có mô hình để hiển thị lên

3

Đối với Django 1.10 giúp tôi để đăng ký Model sau cách với (admin.ModelAdmin) vào cuối

from django.contrib import admin 

from .models import YourModel 
admin.register(YourModel)(admin.ModelAdmin) 
+0

Điều này làm việc cho tôi và giúp tôi tìm thấy một sai lầm, nhưng bạn có thể muốn thay vì 'admin.site.register (YourModel)' đó là cách chính xác. –

0

Tôi gặp vấn đề tương tự. Tôi giải quyết việc này để thêm đăng ký quản trị viên vào admin.py. Và tôi không cần thêm lớp phụ.

Giống như:

from jalka.game.models import Game 
from django.contrib import admin 

admin.site.register(Game) 

Môi trường: Win10, Django 1,8

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