私はいくつかの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)),
)
アラン。
うーん... 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'
報告された問題は、管理サイトのモデルの登録をスキップしたことが原因である可能性があります。これを行うと、admin.py
ファイルをアプリケーションの下に置き、そこにモデルを登録します:
admin.site.register(MyModel)
これはすでに回答され受け入れられていることは知っていますが、この問題に対する私の解決策が何であるかを共有したいと思いました。
俺の 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の管理アプリの前にアプリを置くと、どうやらその順番で読み込まれます。アプリを管理者のすぐ下に移動すると、表示され始めました:)
Django 1.10は次の方法でモデルを登録するのに役立ちましたwith(admin.ModelAdmin)with the end
from Django.contrib import admin
from .models import YourModel
admin.register(YourModel)(admin.ModelAdmin)
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)
私は警告を受けなかったので、ここでもこのことを指摘したかっただけです。
おそらく非常にまれですが、私が作成したadmin.pyファイルのアクセス許可が破損しているため、Djangoで読み取れないという問題が今日発生しました。ファイルを削除し、正常に再作成しました。
私の問題で彼らがここでつまずくなら、誰かを救うことを願っています。
モデルを登録するのに苦労しました(上記のすべての提案を試しました)。 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)
私はDigital Oceanを使用していますが、この問題に遭遇しました。解決策はサービスの再起動でした。私は使った
サービスgunicornの再起動
そしてそれはモデルが現れるようになった
コマンドラインに入力しなかったSudo service Apache2 restart
変更を有効にするために必要なもの。 (アマゾンウェブサービスのポート80でライブサーバーでテストを行っていたため。Ubuntuオペレーティングシステムも使用していました。)それで解決しました。これが誰かの助けになることを願っています。
私は同じ問題を抱えています。これを解決して、adminのレジスタをadmin.py
に追加します。そして、私は余分なクラスを追加する必要はありません。
お気に入り:
from jalka.game.models import Game
from Django.contrib import admin
admin.site.register(Game)
環境:Win10、Django 1.8
同じ問題が発生しました。再起動後、開発サーバーモデルが管理ページに表示されます。
間違いは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はフォームです。お役に立てば幸いです
これをインポート(インクルード)するだけです:
from models import *
DockerコンテナにマウントされたDjangoのインスタンスで同様の問題が発生しました。コードは正しいですが、admin.pyへの変更はDjango= admin 。
Djangoプロセスを終了し、docker-compose up
でコンテナを再マウントすると、追加されたモデルがDjango= admin。
サフの言ったことに加えて、あなたの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',
)
考えられる理由の1つは、古いpythonプロセスを閉じないことです。