Latest web development tutorials

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の管理管理ツールは、多くの便利な機能は、興味のある学生は、深次で勉強することができますがあります。