2010-06-06 13 views
28

Ho cazzato diverse app di django e materiale per il mio fondo e finora tutto ha funzionato bene.modello non visualizzato in django admin

Ora ho appena creato un nuovo progetto (django 1.2.1) e ho avuto problemi durante i primi momenti.

Ho creato una nuova app: gioco e nuovo modello. ho creato admin.py e ho inserito materiale correlato. Ran syncdb e andò a controllare in admin. Il modello non è apparso lì.

ho provveduto a controllare e ricontrollare e leggere le discussioni precedenti simili: Registered models do not show up in admin Django App Not Showing up in Admin Interface

Ma, per quanto posso dire, essi non mi aiuta neanche. Forse qualcun altro può indicarlo per me.

models.py in gioco app:

# -*- 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 in gioco app:

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

progetto 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.

risposta

15

Hmmmm ... Prova cambiamento includono della tua applicazione in settings.py:

Da:

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

A:

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

Quella è una cosa da provare davvero. Ma se fosse davvero così, dubito che il modello sarebbe comunque presente nel database. Ma ci proverò. nel caso in cui. –

+0

Sembra che sia stato questo. Il Django è davvero diventato più severo riguardo ad alcune cose? Come ho scoperto che 'pass' nei processori di contesto generava errori e dovevo sostituire il pass con return {} per eliminare gli errori (più qui - http://groups.google.com/group/django-users/ browse_thread/thread/144fa6b67db420f/ec98c74e0606cbe3) –

+3

Un'altra possibilità è che sei stato collegato all'interfaccia di amministrazione come utente che non aveva il permesso di cambiare quel modello; in tal caso il modello non verrà mostrato anche se tutto il resto è corretto. Pertanto, in questi casi, quando si tenta di eseguire il debug, è meglio assicurarsi di aver effettuato l'accesso come utente amministratore per escludere un problema di autorizzazioni. –

3

E 'probabilmente molto raro, ma Ho avuto un problema oggi in cui le autorizzazioni sul file admin.py che avevo creato erano corrotte e quindi reso illeggibile da dj ango. Ho cancellato il file e l'ho ricreato con successo.

La speranza che salva qualcuno, dovrebbe inciampare qui con il mio problema.

6

So che questo è già stato risposto e accettato, ma mi sentivo come condividere la mia soluzione a questo problema, forse aiuterà qualcun altro.

mio INSTALLED_APPS si presentava così:

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

Sede, ho messo la mia applicazione prima di amministrazione app di Django, e apparentemente li carica in questo ordine. Ho semplicemente spostato la mia app proprio sotto l'amministratore, e ha iniziato a mostrare :)

28

Il problema segnalato può essere dovuto alla mancata registrazione dei modelli per il sito di amministrazione.Questo può essere fatto, la creazione di un file di admin.py sotto di te applicazione, e non registrando i modelli con:

admin.site.register(MyModel) 
+1

In che modo questa risposta è la più votata? Il mio codice mostra che ho fatto admin.site.register ... e la risposta selezionata è corretta .. quindi wtf ... –

+3

Perché la gente digita "modello non visualizzato in admin" in Google, prova tutte le soluzioni sul prima pagina SO che trovano, e in suvota qualsiasi cosa funzioni :-D – andyhasit

+0

Ancora classificato ... XD @andyhasit bella cattura! – Dos

0

Aggiungendo a ciò che ha detto Saff, il vostro settings.py dovrebbe essere come questo:

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

Vorrei anche Mi piace aggiungere che ho fatto tutto quello che dicevano queste risposte, ma non ho inserito la riga di comando sudo service apache2 restart che avevo bisogno di rendere effettive le modifiche. (Perché stavo testando su un server live sulla porta 80 su Amazon Web. Stavo anche usando un sistema operativo Ubuntu.) Questo lo risolse per me. Spero che questo possa aiutare qualcuno.

1

Sto utilizzando l'oceano digitale e ho riscontrato anche questo problema. La soluzione era un riavvio del servizio. Ho usato

servizio gunicorn riavviare

e che ha ottenuto il modello di presentarsi

3

Per Django 1.10 contribuito a me per registrare il modello seguente modo con (admin.ModelAdmin) alla fine

from django.contrib import admin 

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

Questo ha funzionato per me e mi ha aiutato a trovare un errore, ma probabilmente vorrai invece "admin.site.register (YourModel)" che è il modo corretto. –

0

Ho lo stesso problema. Risolvo questo per aggiungere il registro di amministrazione a admin.py. E non ho bisogno di aggiungere classi extra.

come:

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

admin.site.register(Game) 

Ambiente: Win10, Django 1,8