el modelo no aparece en el administrador de django

4 minutos de lectura

avatar de usuario
Odif Yltsaeb

He creado varias aplicaciones y cosas de django para mi propio fondo y hasta ahora todo ha funcionado bien.

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

Creé una nueva aplicación: un juego y un nuevo modelo de juego. Creé admin.py y le puse cosas relacionadas. Ejecuté syncdb y fui a registrarme en admin. El modelo no apareció allí.

Procedí a verificar y verificar dos veces y leer hilos similares anteriores: Los modelos registrados no aparecen en el administrador La aplicación Django no aparece en la interfaz de administración

Pero por lo que puedo decir, tampoco me ayudan. Tal vez alguien más pueda señalarme esto.

models.py en la 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 la 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)

configuración del proyecto.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)),
)

Hmmmm… Intente cambiar la inclusión de su aplicación en settings.py:

De:

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'

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

    – Odif Yltsaeb

    7 de junio de 2010 a las 16:55

  • Parece que esto fue todo. ¿Django realmente se ha vuelto más estricto con respecto a algunas cosas? Al igual que descubrí que ‘pasar’ en los procesadores de contexto estaba generando errores y tuve que reemplazar pasar con retorno {} para deshacerme de los errores (más aquí – groups.google.com/group/django-users/browse_thread/thread/…)

    – Odif Yltsaeb

    7 junio 2010 a las 17:10

  • Otra posibilidad aquí es que haya iniciado sesión en la interfaz de administración como un usuario que no tenía permiso para cambiar ese modelo; en ese caso, el modelo no se mostrará incluso si todo lo demás es correcto. Como tal, en estos casos, al intentar depurar, es mejor asegurarse de haber iniciado sesión como usuario administrador, para descartar un problema de permisos.

    – Stefan Magnuson

    22 de mayo de 2015 a las 14:57

  • ¿Dónde se puede encontrar el valor de YOUR_PROJECT y donde se puede encontrar el valor de game? Sé que la primera pregunta puede ser obvia para la mayoría, pero el nombre está mal en el proyecto en el que estoy trabajando.

    – arshbot

    23 de agosto de 2018 a las 22:28

  • Esto es lo que funcionó para mí. Es una cosa bastante tonta tener un tropiezo, debería estar documentado en alguna parte, ¡o que se emita una advertencia / error!

    – Homúnculo Reticulli

    30 de julio de 2021 a las 7:51

Sé que esto ya ha sido respondido y aceptado, pero tenía ganas de compartir cuál fue mi solución a este problema, tal vez ayude a alguien más.

Mi INSTALLED_APPS se veía así:

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

Mira, puse mi aplicación antes de la aplicación de administración de Django, y aparentemente las carga en ese orden. Simplemente moví mi aplicación justo debajo del administrador y comenzó a aparecer 🙂

avatar de usuario
pymen

Para Django 1.10 me ayudó a registrar el Modelo de la siguiente manera con (admin.ModelAdmin) al final

from django.contrib import admin

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

avatar de usuario
tonto

Probablemente sea muy raro, pero hoy tuve un problema en el que los permisos en el archivo admin.py que había creado estaban dañados y, por lo tanto, Django no podía leerlos. Eliminé el archivo y lo volví a crear con éxito.

Espero que eso salve a alguien, en caso de que tropiecen aquí con mi problema.

¿Ha sido útil esta solución?