django学習ノート(二)
4103 ワード
二、Writing your first Django app,part 2
管理サイトのアクティブ化 settings.pyのINSTALLED_をキャンセルAPPS中admin注釈 south管理データベース を使用設置 起動サーバ
ポールを追加 polls/admin.py を追加カスタム管理インタフェース(順序変更) カスタム管理インタフェース(パケット) カスタム管理インタフェース(折りたたみ) Choiceを追加インライン方式 表方式 カスタムリストの管理インタフェース通常表示複数列 メソッド設定属性 フィルタ を追加検索欄 を追加日付階層フィルタ 完全なPollAdminクラス パーソナルプロジェクトテンプレートのカスタマイズ
1.テンプレートパスを作成し、settings.pyに追加
1.1 djangoのソースファイルはどこですか?
例えば私のvirtualenvs環境のdjangoの出力結果は:
1.2プロジェクトテンプレートカタログを作成し、コピーする
プロジェクトディレクトリにテンプレートパスtemplatesを作成し、パス結果:
1.3 settings.pyを変更し、テンプレートの検索パスを追加する
管理サイトのアクティブ化
'django.contrib.admin',
python manage.py schemamigration polls --auto
python manage.py migrate polls
mysite/urls.py
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
...
url(r'^admin/', include(admin.site.urls)),
python manage.py runserver
アクセスアドレスhttp://127.0.0.1:8000/admin/ ポールを追加
from django.contrib import admin
from polls.models import Poll
admin.site.register(Poll)
a. ModelAdmin
b. 2
class PollAdmin(admin.ModelAdmin):
fields = ['pub_date', 'question']
admin.site.register(Poll, PollAdmin)
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
('Date information', {'fields': ['pub_date']}),
]
class PollAdmin(admin.ModelAdmin):
...
(' ', {'fields': ['pub_date'], 'classes': ['collapse']}),
from django.contrib import admin
from polls.models import Choice, Poll
class ChoiceInline(admin.StackedInline):
model = Choice
extra = 3
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
inlines = [ChoiceInline]
admin.site.register(Poll, PollAdmin)
class ChoiceInline(admin.TabularInline):
class PollAdmin(admin.ModelAdmin):
# ...
list_display = ('question', 'pub_date', 'was_published_recently')
was_published_recently.admin_order_field = 'pub_date'
was_published_recently.boolean = True
was_published_recently.short_description = ' '
list_filter = ['pub_date']
search_fields = ['question']
date_hierarchy = 'pub_date'
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
(' ', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
inlines = [ChoiceInline]
list_display = ('question', 'pub_date', 'was_published_recently')
list_filter = ['pub_date']
search_fields = ['question']
date_hierarchy = 'pub_date'
1.テンプレートパスを作成し、settings.pyに追加
1.1 djangoのソースファイルはどこですか?
python -c "
import sys
sys.path = sys.path[1:]
import django
print(django.__path__)"
例えば私のvirtualenvs環境のdjangoの出力結果は:
~/.virtualenvs/djtest/local/lib/python2.7/site-packages/django
1.2プロジェクトテンプレートカタログを作成し、コピーする
プロジェクトディレクトリにテンプレートパスtemplatesを作成し、パス結果:
~/djtest/mysite
|---mysite
|---polls
| |---migrations
|---templates
| |---admin
~/.virtualenvs/djtest/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin
からcp base_site.html ~/djtest/mysite/templates/admin/
1.3 settings.pyを変更し、テンプレートの検索パスを追加する
TEMPLATE_DIRS = (
'/home/***/djtest/mysite/templates/'
)