3

プロジェクトにdjango管理者を設定しています。

各アプリでファイルを作成しましadmin.pyた(以前のプロジェクトと同じように)。ただし、admin.pyモジュールはロードされていません。モデルが登録されておらず、でコードに割り込むことができませんpydevd.settrace()

管理コードを最後に移動すると、models.pyすべてが期待どおりに機能し、モデルがadminに登録され、コードが実行されます(でステップスルーできますpydevd.settrace())。

だからこれは失敗する-

my_project_app
    __init__.py
    cart
        __init__.py
        models.py
        admin.py

しかし、models.pyファイルの最後にコードを追加すると、すべてが正常に実行されます-

from django.contrib import admin

class CartAdmin(admin.ModelAdmin):
    pass

admin.site.register(Cart, CartAdmin)

明らかに、管理者を構成するので、1つのモジュールにすべてを含める必要はありません。ファイルを機能させるにはどうすればよいadmin.pyですか?そして、なぜ彼らは動作を停止したのですか(これは私がdjango 1.5を使用したのは初めてです-それが適切かどうかはわかりません)

4

2 に答える 2

5

通常、 を呼び出すとadmin.autodiscover()urls.pyすべてが読み込まれます。

# urls.py
from django.conf.urls import patterns, include
from django.contrib import admin

admin.autodiscover()

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

を使用する前に実行する必要があるためadmin.site.urls、ここで呼び出すのが最適です。

于 2013-03-11T12:03:43.357 に答える
3

admin.py ファイルで、モデルをインポートする必要があります

from cart.models import Cart

それでも機能しない場合は、含まれているかどうかを確認してください

'django.contrib.admin',

設定ファイルの installed_apps リストに、次に urls ファイルにインクルードします

admin.autodiscover()

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

manange.py syncdb を実行します

manage.py runserver を実行します

127.0.0.1:8000/管理者を確認してください

それはうまくいくはずです

于 2013-03-11T12:34:29.347 に答える