webentwicklung-frage-antwort-db.com.de

modell nicht in Django Admin angezeigt

Ich habe mehrere Django-Apps und -Stuff für meinen eigenen Fonds erstellt und bisher hat alles einwandfrei funktioniert.

Jetzt habe ich gerade ein neues Projekt (Django 1.2.1) erstellt und bin vom ersten Moment an in Schwierigkeiten geraten.

Ich habe ein neues App-Spiel und ein neues Modell-Spiel erstellt. Ich habe admin.py erstellt und verwandte Dinge hineingesteckt. Ran syncdb und ging in Admin einchecken. Model ist dort nicht aufgetaucht.

Ich überprüfte und überprüfte die vorherigen ähnlichen Themen und las sie durch: Registrierte Modelle werden nicht im Admin-Bereich angezeigtDjango-App wird nicht im Admin-Bereich angezeigt

Aber soweit ich das beurteilen kann, helfen sie mir auch nicht. Vielleicht kann jemand anderes mich darauf hinweisen.

models.py in der Spiel-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 der Spiel-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)

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

44
Odif Yltsaeb

Hmmmm ... Versuch das Include deiner App in settings.py zu ändern:

Von:

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

An:

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'
19
Saff

Das gemeldete Problem kann darin liegen, dass Sie die Registrierung der Modelle für die Verwaltungswebsite übersprungen haben. Dazu können Sie eine admin.py-Datei unter Ihrer Anwendung erstellen und die Modelle dort registrieren:

admin.site.register(MyModel)
52
jesicadev18

Ich weiß, dass dies bereits beantwortet und akzeptiert wurde, aber ich wollte mit Ihnen teilen, was meine Lösung für dieses Problem war. Vielleicht hilft es jemand anderem.

Mein INSTALLED_APPS sah so aus:

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

Ich habe meine App vor die Admin-App von Django gestellt und scheint sie in dieser Reihenfolge zu laden. Ich habe einfach meine App direkt unter den Admin verschoben und es wurde angezeigt :)

6
Eduard Luca

Für Django 1.10 half mir ich, das Model über mit (admin.ModelAdmin) am Ende zu registrieren

from Django.contrib import admin

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

Ich hatte Mühe, meine Modelle zu registrieren (versuchte alle obigen Vorschläge), bis ich eine sehr einfache Sache tat. Ich habe meine admin.py aus dem Verzeichnis in das Projektverzeichnis verschoben - der Admin-Bildschirm wurde aktualisiert und zurück und voila in das Models-App-Verzeichnis verschoben. Alle wurden sofort angezeigt. Ich benutze PyCharm und bin mir nicht sicher, ob das Probleme verursacht hat.

Mein Setup ist genau das, was das Django-Handbuch sagt - 

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)
3
Rob Mascaro

Es ist wahrscheinlich sehr selten, aber ich hatte heute ein Problem, bei dem die Berechtigungen für die von mir erstellte Datei admin.py beschädigt waren und daher für Django unlesbar waren. Ich habe die Datei gelöscht und mit Erfolg neu erstellt.

Hoffe, das rettet jemand, sollten sie hier mit meinem Problem stolpern.

3
bitwit

Hatte das gleiche Problem mit Django 2.0.

Der folgende Code hat nicht funktioniert:

from Django.contrib import admin
from Django.contrib.auth.admin import UserAdmin

from users import models

admin.register(models.User, UserAdmin)

Es stellt sich die Linie heraus

admin.register(models.User, UserAdmin)

gewesen sein sollte

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

Da ich keine Warnungen bekam, wollte ich auch hier nur darauf hinweisen.

1
Pavel Vergeev

Ich habe das gleiche Problem. Ich löse dies, um das Register des Administrators zu admin.py..__ hinzuzufügen. Und ich muss keine zusätzliche Klasse hinzufügen.

Mögen:

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

admin.site.register(Game)

Umgebung: Win10 、 Django 1.8

Django

1
sos418

Ich benutze Digital Ocean und bin auch auf dieses Problem gestoßen. Die Lösung war ein Dienstneustart. ich benutzte 

service Gunicorn neu starten

und das brachte das Modell zum Vorschein

1
Michael Fox

Ich habe das gleiche Problem, Nach dem Neustart wird mein Entwicklungsservermodell in der Admin-Seite angezeigt.

1
Muthuraj S

Der Fehler könnte bei views.py liegen. In Ihrem "Def" sollten Sie überprüfen, ob Sie es gefunden haben

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

Ich gebe Ihnen ein Stück meines Codes, damit Sie es verstehen würden

@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,
})

`UserAsking ist eine Form ... Ich hoffe ich habe dir geholfen

0
danil2000

Ich möchte auch hinzufügen, dass ich alles getan habe, was diese Antworten sagten, außer ich habe nicht die Befehlszeile Sudo service Apache2 restart eingegeben, die ich brauchte, damit die Änderungen wirksam werden. (Weil ich auf Port 80 einen Live-Server mit Amazon-Webdiensten getestet habe. Ich habe auch ein Ubuntu-Betriebssystem verwendet.) Das hat es für mich gelöst. Ich hoffe, das könnte jemandem helfen.

0
Rock Lee

Sie müssen nur das importieren (einschließen):

from models import *
0
user10149671

Ich hatte ein ähnliches Problem bei einer Instanz von Django in einem Docker-Container. Der Code war korrekt, aber Änderungen an admin.py wurden nicht in Django admin angezeigt .

Nach dem Beenden des Django Prozesses und dem erneuten Einhängen des Containers mit docker-compose up, die hinzugefügten Modelle wurden verfügbar in Django admin.

0
FlyingJay

Zusätzlich zu dem, was Saff gesagt hat, sollte Ihr settings.py folgendermaßen aussehen:

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
phreeLynx

Einer der möglichen Gründe ist, dass Sie alte Python-Prozesse nicht schließen.