Menulis Project Django App Tahap 2
Tutorial ini dimulai dengan Tutorial 1 . Kita akan melanjutkan Web-poll application dan akan focusl pada Django’s
automatically-generated admin site.
Philosophy
Meng-Generate admin sites untuk staff anda atau untuk menambah client, merubah, dan menghapus content ini adalah pekerjaan yang membosankan, karena tidak membutuhkan creativitas. Untuk alasan itu, Django seluruh automates creation dari admin interfaces. Django ditulis dalam newsroom environment, dengan “content publishers” dan public” site. Site managers menggunakan system untuk menambah news stories, events, sports scores, dan lain-lain. dan content ditampilkan pada public site. Django memecahkan masalah membuat unified interface untuk site administrators untuk meng-edit content.Mengaktifkan Site Admin
Django admin site tidak diaktifkan secara default by default. Untuk mengaktifkan admin site lakukan langkah-langkah sebagai berikut :
- Hapus tanda # "django.contrib.admin" pada INSTALLED_APPS setting.
- Jalankan python manage.py syncdb. Maka database perlu dibuat di INSTALLED_APPS, database perlu diupdate.
- Edit file mysite/urls.py dan hapus tanda # uncomment sehingga terlihat seperti dibawah ini urls.py :
from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', '{{ project_name }}.views.home', name='home'), # url(r'^{{ project_name }}/', include('{{ project_name }}.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), )
Start development server
Let’s start the development server dan explore admin site.Ketikkan perintah dibawah ini untuk menjalankan python server :
python manage.py runserver

Apabila tidak terlihat seperti gambar diatas.
dan ada pesan seperti dibawah ini
dan ada pesan seperti dibawah ini
ImportError at /admin/
cannot import name patterns
...
ada kemungkinan menggunakan versi django yang tidak sama dengan tutorial ini. silahkan install django terbaru.
Sekarang coba login menggunakan superuser account yang dulu pernah ada di tutorial pertama masih ingat ? Tutorial 1 bila anda lupa, diusahakan dibuat dari awal lagi dan mengulan Tutorial 1 :

Setelah masuk kita dapat menjumpai content, berupa groups, users dan sites. Ini adalah features Django ships secara default.
Membuat file admin
Tetapi dimanakan poll app kita? Ko tidak ditampilkan di halaman admin index page.Ada satu yang belum kita buat, yaitu memperkenalkan Poll objects ke halaman admin interface. Untuk melakukan ini, buatlah file admin.py pada direktori polls dan editlah seperti dibawah ini :
from polls.models import Poll
from django.contrib import admin
admin.site.register(Poll)
Explorasi Fungsi Admin
Terlihat sekarang kita sudah memperlihatkan Poll, Sudah tampil di halaman depan django admin.
Click "Polls." Sekarang anda masuk pada "change list" halaman untuk Pools. Pada halaman ini terlihat semua database Polls yang telah kita rubah dan kita pilih. Terlihat 'What's Up ' seperti di tutorial yang pertama.

Click "What's up?" poll untuk mengedit :
Catatan :

Catatan :
- form is automatically generated dari Poll model.
- Perbedaan (DateTimeField, CharField) koresponen HTML input widget.
- DateTimeField mendapat JavaScript shortcuts. Tanggal "Today" shortcut dan calendar popup, dan times "Now" shortcut dan daftar input.
- Save
- Save and continue editing
- Save and add another
- Delete

Customize admin form
Dengan beberapa menit kita dapat membuat halaman admin yang tercustomize. Dengan mendaftarkan admin.site.register(Poll), Django secara default membuat formulirnya. Meskipun tampilan admin seperti itu namun dapat bekerja di object django.Lihat bagaimana alur dan cara kerja program sesungguhnya caranya ganti admin.site.register(Poll) dengan :
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']}),
]
admin.site.register(Poll, PollAdmin)

Anda dapat menyusun HTML class untuk tiap fieldset. Django menyediakan "collapse" class sehingga dapat disembunyikan. Hal ini sangat diperlukan apabila banyak field ada di halaman admin.
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]

Customize admin change list

Secara default, Django menampilkan str() pada setiap object. Tetapi lebih sering terbantu dengan membuat individual fields.untuk membuat hal itu list_display admin option, digunakan
class PollAdmin(admin.ModelAdmin):
# ...
list_display = ('question', 'pub_date')
class PollAdmin(admin.ModelAdmin):
# ...
list_display = ('question', 'pub_date', 'was_published_recently')

Untuk membuat tampilan dapat terlihat time zonenya maka kita buat
pada file models.py attribut sebagai berikut :
class Poll(models.Model):
# ...
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
was_published_recently.admin_order_field = 'pub_date'
was_published_recently.boolean = True
was_published_recently.short_description = 'Published recently?'
list_filter = ['pub_date']

Untuk memberikan Search diatas gunakan sintaks dibawah ini :
search_fields = ['question']
Terakhir membuat hierarki nya menggunakan :
date_hierarchy = 'pub_date'
Customize halaman Admin
Sangat jelas dalam membuat "Django administration" pada bagian atas dari halaman admin. Hal ini sangat mudah untuk merubah dan menggunakan Django template system. Django admin dipake oleh Django itu sendiri, dan interfacenya dapat diambil di template bawaan django default.Buka file (mysite/settings.py, masih ingat kan) lihat TEMPLATE_DIRS setting. TEMPLATE_DIRS digunakan untuk membuat template.
Secara default TEMPLATE_DIRS kosong. sekarang saat nya kita memasukkan template
TEMPLATE_DIRS = (
'/home/my_username/mytemplates', # Change this to your own directory.
)
Bila anda kesulitan mencarinya, maka gunakan :
dengan cara gunakan file dibawah inipython -c "
import sys
sys.path = sys.path[1:]
import django
print(django.__path__)"
Tinggal mengganti Django text dengan nama perushaan anda.
Template ini terdiri dari {% block branding %} dan {{ title }}. {% dan {{ tags adalah bagian dari Django's template language. ketika django admin/base_site.html, nanti kita akan lanjutkan di tutorial ke 3.
Customize admin index page
Template untuk menyesuaikan adalah admin / index.html. (Lakukan hal yang sama dengan admin / base_site.html pada bagian sebelumnya - menyalinnya dari direktori default ke direktori template kustom Anda.) Edit file tersebut, dan Anda akan melihatnya menggunakan variabel template yang disebut app_list. Variabel yang berisi setiap aplikasi Django instal. Alih-alih menggunakan itu, Anda bisa keras-kode link ke objek-spesifik halaman admin dengan cara apa pun yang Anda anggap terbaik. Sekali lagi, jangan khawatir jika Anda tidak dapat memahami bahasa template - kita akan membahas bahwa lebih rinci dalam Tutorial 3.
0 comments:
Posting Komentar
PEDOMAN KOMENTAR
Ayo berpartisipasi membangun budaya berkomentar yang baik. Pantang bagi kita memberikan komentar bermuatan menghina atau spam.
Kolom komentar tersedia untuk diskusi, berbagi ide dan pengetahuan. Hargai pembaca lain dengan berbahasa yang baik dalam berekspresi. Setialah pada topik. Jangan menyerang atau menebar kebencian terhadap suku, agama, ras, atau golongan tertentu.
Bangun sharing ilmu dengan berkomentar disini :