web-dev-qa-db-ja.com

モデルがDjango adminに表示されない

私はいくつかのDjango自分の資金のためにアプリやものをやめましたが、今のところすべてがうまく機能しています。

今、私はちょうど新しいプロジェクト(Django 1.2.1)を作成し、最初の瞬間からトラブルに遭遇しました。

ゲームと新しいモデルのゲーム-新しいアプリを作成しました。私はadmin.pyを作成し、それに関連するものを入れました。 syncdbを実行し、adminにチェックインしました。モデルはそこに現れませんでした。

私はチェックとダブルチェックに進み、以前の同様のスレッドを読みました: 登録されたモデルがadminに表示されないDjango App管理インターフェイスに表示されない

しかし、私が知る限り、彼らは私を助けてくれません。おそらく他の誰かが私にこれを指摘することができます。

ゲームアプリのmodels.py:

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

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

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

アラン。

51
Odif Yltsaeb

うーん... settings.pyでアプリのインクルードを変​​更してみてください:

From:

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

To:

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

報告された問題は、管理サイトのモデルの登録をスキップしたことが原因である可能性があります。これを行うと、admin.pyファイルをアプリケーションの下に置き、そこにモデルを登録します:

admin.site.register(MyModel)
67
jesicadev18

これはすでに回答され受け入れられていることは知っていますが、この問題に対する私の解決策が何であるかを共有したいと思いました。

俺の INSTALLED_APPSは次のようになりました。

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

Djangoの管理アプリの前にアプリを置くと、どうやらその順番で読み込まれます。アプリを管理者のすぐ下に移動すると、表示され始めました:)

6
Eduard Luca

Django 1.10は次の方法でモデルを登録するのに役立ちましたwith(admin.ModelAdmin)with the end

from Django.contrib import admin

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

Django 2.0で同じ問題が発生しました。

次のコードは機能しませんでした:

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

from users import models

admin.register(models.User, UserAdmin)

行が判明します

admin.register(models.User, UserAdmin)

になるはずだった

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

私は警告を受けなかったので、ここでもこのことを指摘したかっただけです。

4
Pavel Vergeev

おそらく非常にまれですが、私が作成したadmin.pyファイルのアクセス許可が破損しているため、Djangoで読み取れないという問題が今日発生しました。ファイルを削除し、正常に再作成しました。

私の問題で彼らがここでつまずくなら、誰かを救うことを願っています。

4
bitwit

モデルを登録するのに苦労しました(上記のすべての提案を試しました)。 admin.pyをディレクトリからプロジェクトディレクトリに移動しました-管理画面を更新し、モデルアプリディレクトリに戻して、すべてを即座に表示しました。私はPyCharmを使用しているので、それが問題を引き起こしていたかどうかはわかりません。

私のセットアップは、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)
3
Rob Mascaro

私はDigital Oceanを使用していますが、この問題に遭遇しました。解決策はサービスの再起動でした。私は使った

サービスgunicornの再起動

そしてそれはモデルが現れるようになった

2
Michael Fox

コマンドラインに入力しなかったSudo service Apache2 restart変更を有効にするために必要なもの。 (アマゾンウェブサービスのポート80でライブサーバーでテストを行っていたため。Ubuntuオペレーティングシステムも使用していました。)それで解決しました。これが誰かの助けになることを願っています。

1
Rock Lee

私は同じ問題を抱えています。これを解決して、adminのレジスタをadmin.pyに追加します。そして、私は余分なクラスを追加する必要はありません。

お気に入り:

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

admin.site.register(Game)

環境:Win10、Django 1.8

Django

1
sos418

同じ問題が発生しました。再起動後、開発サーバーモデルが管理ページに表示されます。

1
Muthuraj S

間違いはviews.pyあなたの「def」では、あなたが持っているかどうかを確認する必要があります

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

あなたが理解できるように、私のコードの一部を提供します

@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はフォームです。お役に立てば幸いです

0
danil2000

これをインポート(インクルード)するだけです:

from models import *
0
user10149671

DockerコンテナにマウントされたDjangoのインスタンスで同様の問題が発生しました。コードは正しいですが、admin.pyへの変更はDjango= admin 。

Djangoプロセスを終了し、docker-compose upでコンテナを再マウントすると、追加されたモデルがDjango= admin。

0
FlyingJay

サフの言ったことに加えて、あなたのsettings.pyは次のようになります。

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

考えられる理由の1つは、古いpythonプロセスを閉じないことです。