2010-06-06 26 views
28

He ceated varias aplicaciones django y cosas para mi propio fondo y hasta ahora todo ha funcionado bien.modelo no aparece en django admin

Ahora acabo de crear un nuevo proyecto (django 1.2.1) y he tenido problemas desde el primer momento.

He creado una nueva aplicación: juego y nuevo juego. Creé admin.py y puse cosas relacionadas en él. Corrió syncdb y fue a comprobar en admin. El modelo no apareció allí.

que procedieron a comprobar y DoubleCheck y leer a través de las discusiones previas similares: Registered models do not show up in admin Django App Not Showing up in Admin Interface

Pero por lo que yo puedo decir, ellos no me ayuda tampoco. Quizás alguien más pueda señalarme esto.

models.py en aplicación del juego:

# -*- 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 en aplicación del juego:

# -*- 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 proyecto:

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.

Respuesta

15

Hmmmm ... Intenta cambiar incluyen de su aplicación en settings.py:

Desde:

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

Para:

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

Eso es una cosa para tratar de hecho. Pero si ese fuera realmente el caso, entonces dudo que el modelo apareciera en la base de datos de todos modos. Pero lo intentaré. por si acaso. –

+0

Parece que esto fue todo. ¿Ha sido realmente django más estricto con respecto a algunas cosas? Al igual que descubrí que los procesadores 'pass' in context estaban generando errores y tuve que reemplazar el pase con return {} para deshacerme de los errores (más aquí - http://groups.google.com/group/django-users/ browse_thread/thread/144fa6b67db420f/ec98c74e0606cbe3) –

+3

Otra posibilidad aquí es que haya iniciado sesión en la interfaz de administrador como un usuario que no tenía permiso para cambiar ese modelo; en ese caso, el modelo no se mostrará aunque todo lo demás sea correcto. Como tal, en estos casos, cuando intenta depurarlo, es mejor asegurarse de que está conectado como el usuario administrador, para descartar un problema de permisos. –

3

Es probablemente muy rara pero Tuve un problema hoy en que los permisos en el archivo admin.py que había creado estaban corruptos y, por lo tanto, no se podían leer por dj ango Eliminé el archivo y lo recreé con éxito.

Espero que salve a alguien, si tropiezan aquí con mi problema.

6

Sé que esto ya ha sido respondido y aceptado, pero tenía ganas de compartir cuál era mi solución a este problema, tal vez ayudará a otra persona.

Mi INSTALLED_APPS era la siguiente:

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

Véase, puse mi aplicación antes de la aplicación de administración de Django, y al parecer los carga en ese orden. Simplemente moví mi aplicación justo debajo del administrador, y comenzó a aparecer :)

28

El problema informado puede deberse a que omitió el registro de los modelos para el sitio de administración.Esto puede hacerse, creando un archivo admin.py en virtud de que la aplicación, y no hay registro de los modelos con:

admin.site.register(MyModel) 
+1

¿Cómo es esta respuesta la mejor calificada? Mi código muestra que sí tuve admin.site.register ... y la respuesta seleccionada es la correcta ... así que wtf ... –

+3

Como las personas escriben "modelo que no aparece en el administrador" en Google, pruebe todas las soluciones en el primera página SO que encuentran, y upvote lo que sea que funcione :-D – andyhasit

+0

Aún clasificado como ... XD @andyhasit nice catch! – Dos

0

Agregando a lo que dijo Saff, su settings.py debería ser así:

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

También me me gusta agregar, que hice todo lo que dijeron estas respuestas, excepto que no ingresé en la línea de comando sudo service apache2 restart que necesitaba para que los cambios tuvieran efecto. (Debido a que estaba probando en un servidor en vivo en el puerto 80 en los servicios web de Amazon. También estaba usando un sistema operativo Ubuntu.) Eso lo resolvió para mí. Espero que esto pueda ayudar a alguien.

1

Estoy usando digital ocean y también encontré este problema. La solución fue un reinicio del servicio. Solía ​​

servicio gunicorn reiniciar

y que dieron el modelo para mostrar hasta

3

Para Django 1.10 ayudado a mí para registrar el modelo siguiente manera con (admin.ModelAdmin) al final

from django.contrib import admin 

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

Esto funcionó para mí y me ayudó a encontrar un error, pero probablemente prefiera 'admin.site.register (YourModel)', que es la forma correcta. –

0

Tengo el mismo problema. Resuelvo esto para agregar el registro de admin al admin.py. Y no necesito agregar clase extra.

igual:

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

admin.site.register(Game) 

Ambiente: Win10, Django 1,8