2010-06-06 24 views
28

Zakończyłem kilka aplikacji i django dla mojego własnego funduszu i jak dotąd wszystko działało dobrze.model nie pojawia się w django admin

Teraz właśnie stworzyłem nowy projekt (django 1.2.1) i miałem problemy z 1. momentami.

Stworzyłem nową aplikację - grę i nowy model Gry. Stworzyłem admin.py i umieściłem w nim powiązane rzeczy. Wykonano syncdb i udałem się do administratora. Model nie pojawił się tam.

I przystąpił do sprawdzania i SPRAWDŹ dokładnie i przeczytanie poprzednich podobnych wątków: Registered models do not show up in admin Django App Not Showing up in Admin Interface

Ale o ile mogę powiedzieć, że nie może mi pomóc albo. Być może ktoś inny może mi to wskazać.

models.py w grze aplikacji:

# -*- 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 w grze aplikacji:

# -*- 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) 

settings.py projekt:

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.

Odpowiedz

15

Hmmmm ... Spróbuj to zmiana z aplikacji w settings.py:

Od:

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

Do:

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

To jest jedna rzecz, aby spróbować naprawdę. Ale jeśli tak rzeczywiście było, to wątpię, by model pojawił się w bazie danych. Ale spróbuję. w razie czego. –

+0

Wygląda na to, że to było to. Czy django naprawdę było bardziej rygorystyczne w odniesieniu do niektórych rzeczy? Jak się dowiedziałem, że "przekazanie" w procesorach kontekstowych generowało błędy i musiałem wymienić pass z powrotem {}, aby pozbyć się błędów (więcej tutaj - http://groups.google.com/group/django-users/ browse_thread/thread/144fa6b67db420f/ec98c74e0606cbe3) –

+3

Inną możliwością jest to, że zalogowałeś się do interfejsu administratora jako użytkownik, który nie miał uprawnień do zmiany tego modelu; w takim przypadku model nie pojawi się, nawet jeśli wszystko inne jest poprawne. W takich przypadkach podczas próby debugowania najlepiej jest upewnić się, że jesteś zalogowany jako administrator, aby wykluczyć problem uprawnień. –

3

To prawdopodobnie bardzo rzadkie, ale Miałem dzisiaj problem, w którym uprawnienia do pliku admin.py, które utworzyłem, były uszkodzone i przez to dj stały się nieczytelne. ango. Usunąłem plik i odtworzyłem go z powodzeniem.

Mam nadzieję, że ktoś cię uratuje, jeśli wpadną tutaj z moim problemem.

6

Wiem, że to już zostało odebrane i zaakceptowane, ale chciałem podzielić się tym, co było moim rozwiązaniem tego problemu, może to pomoże komuś innemu.

My INSTALLED_APPS wyglądał następująco:

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', 
) 

See, kładę przed Django aplikację administratora aplikacji i widocznie ładuje je w tej kolejności. Po prostu przeniosłem swoją aplikację tuż pod adminem i zaczęło się pojawiać :)

28

Zgłoszony problem może być spowodowany pominięciem rejestracji modeli na stronie administratora.Można to zrobić, tworząc plik admin.py pod tobą aplikacji, a nie rejestracji modeli z:

admin.site.register(MyModel) 
+1

Jak ta odpowiedź jest najwyżej oceniona? Mój kod pokazuje, że mam admin.site.register ... a wybrana odpowiedź jest poprawna .. więc wtf ... –

+3

Ponieważ ludzie wpisują "model nie pojawiający się w adminie" w Google, wypróbuj wszystkie rozwiązania na pierwsza strona SO, którą znaleźli i pobudka, co działa :-D – andyhasit

+0

Nadal w rankingu ... XD @andyhasit nice catch! – Dos

0

Dodając do tego, co Saff powiedział, twój settings.py powinno być tak:

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

Chciałbym również lubię dodać, że zrobiłem wszystko, co te odpowiedzi powiedziały, z wyjątkiem tego, że nie wpisałem w linii poleceń sudo service apache2 restart, które musiałem wprowadzić w życie. (Ponieważ testowałem na żywym serwerze na porcie 80 w serwisach internetowych Amazona, korzystałem też z systemu operacyjnego Ubuntu.) To rozwiązało to dla mnie. Mam nadzieję, że to może pomóc komuś.

1

Korzystam z cyfrowego oceanu, a także napotkam ten problem. Rozwiązaniem było ponowne uruchomienie usługi. Kiedyś

serwis gunicorn restart

i że otrzymał wzór, aby pokazać się

3

Dla Django 1.10 pomógł mi się zarejestrować Model następujący sposób z (admin.ModelAdmin) na końcu

from django.contrib import admin 

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

To zadziałało dla mnie i pomogło mi znaleźć błąd, ale prawdopodobnie chcesz zamiast tego 'admin.site.register (YourModel)', który jest poprawny sposób. –

0

Mam ten sam problem. Rozwiązuję to, aby dodać rejestr administratora do admin.py. I nie muszę dodawać dodatkowej klasy.

odczuwalna:

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

admin.site.register(Game) 

Enviroment: Win10, Django 1,8