10

Django初心者として(ターボギアやボトルなどの他のPython Webフレームワークにある程度の経験がありますが、Djangoを探索しています)、アプリモデルの管理管理を自動作成しようとしています

メインの URLS.py には次のものがあります。

編集

from django.contrib import admin
admin.autodiscover()

それとその後:

urlpatterns = patterns('',
                       url(r'^appname/',include('appname.urls')),
                       url(r'^admin/',include(admin.site.urls)) 

これはアプリの urls.py ではなく、メインの urls.py にあることに注意してください。

チュートリアルに従って(チュートリアルでうまくいきました..) appnameフォルダーに「admin.py」ファイルを作成しました:

from appname.models import Appname
from django.contrib import admin


class appnameAdmin(admin.ModelAdmin):
        fieldsets = [various field sets and fields etc ]

admin.site.register(Appname,AppnameAdmin)

そしてsetting.pyで私はコメントを外しました

'django.contrib.admin'

コマンドライン ウィンドウにエラーは表示されず、基本的な管理画面が表示されます (認証とサイト)

manage.py シェルで admin.py のインポートを確認したところ、すべて問題なく動作しているように見えました。また、AppnameAdmin クラスをコメントアウトして、登録文字列だけを試してみました。

admin.site.register(Appname) 

しかし、それもうまくいきませんでした

明らかな何かが欠けていると思います-喜んでお手伝いします

django 1.4 + python 2.72 を使用

4

8 に答える 8

11

これらすべてを確認してください:

Django 管理サイトをアクティブ化するには、7 つの手順があります。

  1. 「django.contrib.admin」を INSTALLED_APPS 設定に追加します。
  2. 管理者には、django.contrib.auth、django.contrib.contenttypes、django.contrib.messages、django.contrib.sessions の 4 つの依存関係があります。これらのアプリケーションが INSTALLED_APPS リストにない場合は、追加します。
  3. django.contrib.messages.context_processors.messages を TEMPLATE_CONTEXT_PROCESSORS に、MessageMiddleware を MIDDLEWARE_CLASSES に追加します。(これらは両方ともデフォルトでアクティブになっているため、手動で設定を調整した場合にのみこれを行う必要があります。)
  4. アプリケーションのどのモデルを管理インターフェースで編集可能にするかを決定します。
  5. これらのモデルごとに、必要に応じて、その特定のモデル用にカスタマイズされた管理機能とオプションをカプセル化する ModelAdmin クラスを作成します。
  6. AdminSite をインスタンス化し、各モデルと ModelAdmin クラスについて伝えます。
  7. AdminSite インスタンスを URLconf にフックします。
  • インストールしたアプリに他のすべての管理依存関係がありますか?
  • URLS.py に含まれていadmin.autodiscover()ますか?

また、コードは次のようになるはずです。

from projectname.appname.models import Appname
from django.contrib import admin


class AppnameAdmin(admin.ModelAdmin):
        fieldsets = [various field sets and fields etc ]

admin.site.register(Appname,AppnameAdmin)
于 2012-05-27T06:44:09.980 に答える
7

サーバープロセスを再起動しましたか?

多分これは誰かを助けるでしょう: 私の場合、問題はサーバープロセスを停止して開始することで解決されましたadmin.py.

于 2017-02-15T21:15:06.190 に答える
4

aaargghhh - 問題が見つかりました。admin.py を appname/ フォルダーではなく template/appname/ フォルダーに保存しました。私はとても愚かです。中断して申し訳ありません。

于 2012-05-28T20:35:17.537 に答える
3

モデル管理者でこれを設定します。

def has_add_permission(self, request, obj=None):
    return True
def has_change_permission(self, request, obj=None):
    return True
def has_delete_permission(self, request, obj=None):
    return True
于 2013-06-10T14:37:23.967 に答える