Djangoの管理管理ツール
DjangoはWebベースの管理ツールを提供します。
Djangoの自動管理ツールがdjango.contribの一部です。 あなたはINSTALLED_APPS項目にsettings.pyでそれを見ることができます:
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', )
django.contribはDjangoのコードベースの一部であり、膨大な機能セット、です。
ライセンス認証管理ツール
私たちは通常、プロジェクトをビルドする時に自動的にurls.pyで設定し、我々はコメントだけを削除する必要があります。
次のように設定項目は以下のとおりです。
from django.contrib import admin admin.autodiscover() # And include this URLpattern... urlpatterns = patterns('', # ... (r'^admin/', include(admin.site.urls)), # ... )
それはすべての設定されていた場合、Djangoの管理ツールを実行することができます。
管理ツールを使用して、
開発用サーバを起動し、ブラウザにアクセスします。http:// yoursite:8000 / adminに/を、以下の画面を得るために:
次のようにして、スーパーユーザを作成するためのpython manage.py createsuperuserに命令することができます。
# python manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: [email protected] Password: Password (again): Superuser created successfully. [root@solar HelloWorld]#
次のようにユーザー名とパスワードのログインを入力した後、インターフェイスは次のとおりです。
データモデルを管理するための管理インターフェースを作るために、我々は、管理者にデータ・モデルを登録する必要があります。 例えば、我々はTestModelモデルのテストの前に作成されています。 TestModel / admin.pyを変更します。
from django.contrib import admin from TestModel.models import Test # Register your models here. admin.site.register(Test)
あなたはリフレッシュTestmodelのデータシートを見ることができます:
複雑なモデル
より複雑なデータモデルを扱う完全に行うことができ、強力な管理ページ、。
より複雑なデータモデルTestModel / models.pyでの最初の増加:
from django.db import models # Create your models here. class Contact(models.Model): name = models.CharField(max_length=200) age = models.IntegerField(default=0) email = models.EmailField() def __unicode__(self): return self.name class Tag(models.Model): contact = models.ForeignKey(Contact) name = models.CharField(max_length=50) def __unicode__(self): return self.name
2つのテーブルがあります。 外部キーにタグを問い合わせてください。 接触は、タグの複数に対応することができます。
我々はまた、このようなIntegerFieldとは整数を格納するように、多くの属性が前に見たことないタイプを見ることができます。
TestModel / admin.pyでは複数のモデルとショーを登録します。
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. admin.site.register([Test, Contact, Tag])
リフレッシュ管理ページには、以下の結果を示しています。
上記の管理ツールでは、複雑な操作をモデル化することができます。
カスタムフォーム
我々は、代わりにデフォルトのページの、管理ページをカスタマイズすることができます。 例えば、上記のページ」を追加します」。 私たちは、名前と電子メールセクションを表示したいです。 TestModel / admin.pyを変更します。
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): fields = ('name', 'email') admin.site.register(Contact, ContactAdmin) admin.site.register([Test, Tag])
上記のコードContactAdminは、表示フォーマット管理ページを説明するためのクラスを定義します。
フィールド内のプロパティは、表示するフィールドを定義します。
このようなデータモデルとして、彼らは一緒に登録する必要がある場合、当社の看板に連絡して対応しています。 次のように表示します。
我々はまた、入力フィールドをブロックすることができ、各フィールドは、独自の書式を定義することができます。 次のようにTestModel / admin.pyを変更します。
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): fieldsets = ( ['Main',{ 'fields':('name','email'), }], ['Advance',{ 'classes': ('collapse',), # CSS 'fields': ('age',), }] ) admin.site.register(Contact, ContactAdmin) admin.site.register([Test, Tag])
上記のセクションは、2つの部分、主要な事前に分割されています。 クラスは、CSSフォーマット部でそれを説明しました。 ここでは、アドバンスが部分的に隠されてみましょう:
次のセクションを進める以下に示すように、非表示にするにはクリックして隠すを拡大し、拡大のための[表示]ボタンがあります。
インライン(インライン)表示
接触タグは、外部キーの上にあるので、外部参照関係があります。
デフォルトのページ表示では、二人は、従属関係を反映することができない分離しました。 私たちは、インライン表示を使用することができますので、お問い合わせの編集ページに添付タグが表示されます。
TestModel / admin.pyを変更します。
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class TagInline(admin.TabularInline): model = Tag class ContactAdmin(admin.ModelAdmin): inlines = [TagInline] # Inline fieldsets = ( ['Main',{ 'fields':('name','email'), }], ['Advance',{ 'classes': ('collapse',), 'fields': ('age',), }] ) admin.site.register(Contact, ContactAdmin) admin.site.register([Test])
次のように表示します。
ページのリストを表示
連絡先レコードに番号を入力し、連絡先リストのページには、次のようになります。
我々はまた、ちょうどでContactAdminにlist_displayプロパティを追加し、そのようなリストの表示以上の列として、ページの表示をカスタマイズすることができます。
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): list_display = ('name','age', 'email') # list admin.site.register(Contact, ContactAdmin) admin.site.register([Test, Tag])
次のようにページの表示を更新します。
非常に多数のレコードを管理する際の検索機能は、我々はリストのためsearch_fieldsページを高めるために検索バーを使用することができます。
from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): list_display = ('name','age', 'email') search_fields = ('name',) admin.site.register(Contact, ContactAdmin) admin.site.register([Test])
この例では、我々はw3cschool.cc(サイトのドメイン名)の名前を検索し、以下の結果を示しています。
Djangoの管理管理ツールは、多くの便利な機能は、興味のある学生は、深次で勉強することができますがあります。