จากลองเข้าไปที่ 127.0.0.1:8000/admin จะปรากฏหน้าให้ Login เข้าระบบหากใครจำได้ใน Part 1 นั้นเราได้ทำการสร้าง Superuser เอาไว้แล้วนำ Username พร้อม Password ที่ตั้งไว้มาใส่ได้เลย
จากนั้นไปแก้ไขไฟล์ admin.py ที่อยู่ใน polls/admin.py ของ Project ของเราเพื่อให้ สามารถแสดง App polls ที่เราสร้างใน Tutorial 1 ได้โดยแก้ไขให้เป็นดังนี้
from django.contrib import admin
from polls.models import Poll
admin.site.register(Poll)
แล้วลองเข้าไปที่ admin ใน Browser อีกครั้งจะได้ดังรูป
จากนั้นเข้าไปที่ Polls จะพบ What's up? ซึ่งเป็นข้อมูลที่เราได้สร้างไว้ใน Tutorial 1 คลิกเข้าไปเพื่อลองแก้ไข
จากนั้นลองแก้ไขในส่วนของ Date published เป็นเท่าไหร่ก็ได้
เมื่อแก้ไขเสร็จกด Save แล้วลองกดที่ History ดูจะเห็นข้อมูลว่าเราแก้ไขอะไรไป
การปรับเปลี่ยนรูปแบบการแสดงผล
หากเราต้องการจะปรับแต่งรูปแบบการแสดงผลของการเข้าไปแก้ไขข้อมูลของ admin ก็สามารถทำได้โดยเพิ่ม Class เข้าไปในไฟล์ admin.py ใน polls/admin.py
แบบที่ 1 เลือกรูปแบบการจัดอันดับโดยเรียงตามลำดับข้อมูลใน list fields
class PollAdmin(admin.ModelAdmin):
fields = ['pub_date', 'question']
admin.site.register(Poll, PollAdmin)
แบบที่ 2 แยกข้อความออกเป็น 2 บล็อก
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
('Date information', {'fields': ['pub_date']}),
]
แบบที่ 3 ต่อจากแบบที่ 2 นอกจากแยก 2 บล็อกแล้วยังซ่อนไว้ได้อีกด้วย
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
การเพิ่มObjectที่สัมพันธ์กันเข้ามาในหน้า Admin
หากใครจะได้ว่าใน Tutorial Part 1 นั้นเรามี Choice ด้วยดังนั้นเราจะเพิ่ม Choice เข้ามาในส่วนของ Admin ได้ก็ต้องแก้ไขในไฟล์เดิม admin.py ใน polls/admin.py
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)
โดยจากโค้ดที่เขียนไปจะทำให้ เราสามารถเพิ่มหรือ แก้ไข Choice ใน Poll ได้เลยโดยเพิ่มได้สูงสุด 3 Choice ซึ่งโค้ดนี้เป็นการบอก admin ว่า Choice นั้นให้มาแก้ไขใน Poll ได้เลย
จากบรรทัดนี้ class ChoiceInline(admin.StackedInline):ในส่วนของ StackedInline นั้นเป็นรูปแบบของหน้าต่าง Choice ที่เพิ่มเข้าหากเราเปลี่ยนไปใช้เป็น
class ChoiceInline(admin.TabularInline): ก็จะได้รูปแบบการจัดเป็นอีกแบบ
การปรับเปลี่ยนแก้ไขในส่วนของ admin change list
ในส่วนของ Class Poll ใน Tutorial Part 1 นั้นเราจะมี 2 Variable 1 Method ซึ่งเราสามารถแสดงทั้งหมดนั้นในหน้า admin change list ได้โดยการเพิ่มโค้ดข้างล่างนี้ไปไว้ล่างสุดของ class PollAdmin ใน admin.py
list_display = ('question', 'pub_date', 'was_published_recently')
จากการเพิ่มโค้ดเข้าไปแล้วนอกจากจะแสดงผลแบบที่เราต้องการแล้วยังสามารถเรียงตามลำดับโดยหัวข้อได้อีกด้วยแต่มี 1 ช่องที่เรียงไม่ได้คือ was_published_recently ดังนั้นวิธีแกก็คือการเพิ่มโค้ดเข้าไปในไฟล์ model.py ล่างสุดของ Class Poll
was_published_recently.admin_order_field = 'pub_date'
was_published_recently.boolean = True
was_published_recently.short_description = 'Published recently?'
และนอกจากนี้เรายังสามารถเพิ่ม Filter และช่อง Serach ได้อีกโดยใส่โค้ดเพิ่มไปในไฟล์ admin.py ใต้ class PollAdmin
list_filter = ['pub_date']search_fields = ['question']
จาก Tutorial Part 2 นี้เราสามารถที่จะปรับแต่งหน้า admin ของเราให้แสดงผลในรูปแบบตามที่ต้องการได้ เช่น เรียงลำดับตามการแก้ไขก่อนหลัง, การใช้ filter ในการช่วยค้นหาข้อมูล เป็นต้น เราสามารถเพิ่ม , ลบ หรือ แก้ไข Database ของ Apps แต่ละตัวได้ โดยการแก้ไขในไฟล์ admin.py
ไม่มีความคิดเห็น:
แสดงความคิดเห็น