le modèle n'apparaît pas dans django admin

J'ai créé plusieurs applications et étoffes django pour mon propre fonds et jusqu'à présent, tout fonctionne bien.

Maintenant, je viens de créer un nouveau projet (django 1.2.1) et j'ai eu des problèmes à partir de 1st moments.

J'ai créé un nouveau jeu d'application et un nouveau jeu de modèle. j'ai créé admin.py et y mettre des trucs connexes. Ran syncdb et est allé vérifier dans admin. Le modèle ne s'est pas montré là-haut.

J'ai procédé à vérifier et doublecheck et lu précédent similaire threads: les modèles enregistrés n'apparaissent pas dans admin L'application Django N'apparaît pas dans L'Interface D'administration

Mais pour autant que je sache, ils ne m'aident pas non plus. Peut-être quelqu'un d'autre peut le signaler pour moi.

Models.py dans l'application de jeu:

# -*- 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 dans l'application de jeu:

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

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

37
demandé sur Community 2010-06-06 20:48:13

15 réponses

Hmmmm...Essayez de modifier l'inclusion de votre application dans settings.py:

De:

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

Pour:

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'
17
répondu Saff 2010-06-07 10:02:51

Le problème signalé peut être parce que vous avez ignoré l'enregistrement des modèles pour le site d'administration. Cela peut être fait, en créant un fichier admin.py sous votre application, et en enregistrant les modèles avec:

admin.site.register(MyModel)
41
répondu lorenag83 2016-05-11 07:54:53

Je sais que cela a déjà été répondu et accepté, mais j'avais envie de partager ma solution à ce problème, peut-être que cela aidera quelqu'un d'autre.

Mon INSTALLED_APPS ressemblait à ceci:

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

Vous voyez, j'ai mis mon application avant L'application admin de Django, et apparemment elle les charge dans cet ordre. J'ai simplement déplacé mon application juste en dessous de l'administrateur, et elle a commencé à apparaître:)

6
répondu Eduard Luca 2013-07-17 20:14:08

C'est probablement très rare mais j'ai eu un problème aujourd'hui où les autorisations sur le admin.py le fichier que j'avais créé était corrompu et le rendait donc illisible par django. J'ai supprimé le fichier et recréé avec succès.

J'espère que ça sauve quelqu'un, s'ils trébuchent ici avec mon problème.

3
répondu bitwit 2013-02-23 04:40:30

Pour Django 1.10 m'a aidé à enregistrer le modèle suivant avec (admin.ModelAdmin) à la fin

from django.contrib import admin

from .models import YourModel
admin.register(YourModel)(admin.ModelAdmin)
3
répondu pymen 2017-04-05 14:31:40

J'utilise Digital ocean et j'ai également rencontré ce problème. La solution était un redémarrage du service. J'ai utilisé

Service gunicorn redémarrer

Et cela a amené le modèle à apparaître

1
répondu Michael Fox 2015-03-25 19:00:31

J'ai le même problème. Je résous ceci pour ajouter le registre d'admin à admin.py. Et je n'ai pas besoin d'ajouter de classe supplémentaire.

Comme:

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

admin.site.register(Game)

Environnement: Win10、Django 1.8

Django

1
répondu sos418 2017-11-02 11:08:31

J'ai eu le même problème, Après le redémarrage, mon modèle de serveur de développement s'affiche dans la page d'administration.

1
répondu Muthuraj S 2018-04-13 12:55:01

A eu le même problème avec Django 2.0.

Le code suivant n'a pas fonctionné:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin

from users import models

admin.register(models.User, UserAdmin)

, Il s'avère que la ligne

admin.register(models.User, UserAdmin)

Aurait dû être

admin.site.register(models.User, UserAdmin)

Comme je n'ai reçu aucun avertissement, je voulais juste souligner cette chose ici aussi.

1
répondu Pavel Vergeev 2018-06-13 18:46:34

J'ai eu du mal à enregistrer mes modèles (j'ai essayé toutes les suggestions ci-dessus) aussi jusqu'à ce que je fasse une chose très simple. J'ai déplacé mon admin.py hors du répertoire jusqu'au répertoire du projet-rafraîchi l'écran d'administration et déplacé vers l'arrière et le tour est joué dans le répertoire des modèles app-ils sont tous apparus instantanément. J'utilise PyCharm donc je ne sais pas si cela causait des problèmes.

MA configuration est exactement ce que dit le manuel Django -

Models.py

class xxx(models.Model):
    ....
    def __str__(self):  # __str__ for Python 3, __unicode__ for Python 2
        return self.name

Admin.py

from .models import xxx
admin.site.register(xxx)
1
répondu Rob Mascaro 2018-06-14 05:25:06

En ajoutant à ce que SAFF a dit, Votre settings.py devrait être comme ceci:

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
répondu phreeLynx 2013-09-09 13:33:14

Je voudrais aussi ajouter, que j'ai fait tout ce que ces réponses ont dit, sauf que je n'ai pas entré sur la ligne de commande sudo service apache2 restart dont j'avais besoin pour que les modifications prennent effet. (Parce que je testais sur un serveur en direct sur le port 80 sur amazon web services. J'utilisais également un système D'exploitation Ubuntu.) Qui a résolu pour moi. J'espère que cela peut aider quelqu'un.

0
répondu Rock Lee 2015-02-25 21:10:59

Erreur peut être à views.pydans votre "def" vous devriez vérifier si vous avez obtenu

If mymodel.is_valid():
mymodel = model.save()

Je vais vous donner un piee de mon code pour que vous le compreniez

@login_required(login_url='/home/')
def ask_question(request):
user_asking = UserAsking()

if request.method == "POST":
    user_asking = UserAsking(request.POST)

    if user_asking.is_valid():
        user_asking.save()

    return redirect(home)

return render(request, 'app/ask_question.html', {
    'user_asking': user_asking,
})
{[3`} ' UserAsking est un formulaire. j'espère que je vous ai aidé
0
répondu danil2000 2018-04-12 13:07:03

, Vous n'avez qu'à importer(inclure) ceci:

from models import *
0
répondu user10149671 2018-07-29 05:28:54

L'une des raisons possibles est que vous ne fermez pas les anciens processus python.

0
répondu Дмитрий Винник 2018-08-25 08:50:03