ในตอนนี้จะเป็นการแนะนำการแก้ไขชื่อฟิลด์ที่เป็นลาเบลอยู่ด้านหน้าเท็กฟิลด์จากเดิมที่เป็นภาษาอังกฤษแปลงให้เป็นภาษาไทย เพื่อให้ผู้ใช้งานที่ไม่ถนัดภาษาอังกฤษใช้ป้อนข้อมูลได้ถูกต้อง ตัวอย่างฟอร์มที่เป็นภาษาอังกฤษ ดังภาพแสดงด้านล่างครับ
หลักการสำคัญแปลงภาษาอังกฤษเป็นภาษาไทยไม่มีอะไรมาก เพียงแต่ไปเพิ่มคำสั่ง encoding ให้เป็น utf-8 และใช้วลี verbose_name ต่อท้ายคำสั่งที่สร้างฟิลด์ใน class Suppliers รายละเอียดและขั้นตอนการทำมีดังนี้
- เปิดไฟล์ models.py เพื่อแก้ไข
- ที่บรรทัดบนสุดให้เพิ่มคำสั่ง # _*_ encoding: utf-8 _*_
- ที่บรรทัดที่ใช้สร้างฟิลด์ เช่น
CompanyName = models.CharField(max_length=100)
ให้เพิ่มดังตัวอักษรสีแดง ดังนี้
CompanyName = models.CharField(max_length=100,verbose_name='ชื่อบริษัท')
ให้ทำทุก ๆ ฟิลด์ แต่ภาษาไทยขึ้นอยู่กับว่าต้องการให้แสดงข้อความลาเบลว่าอย่างไร
ต่อไปเป็นการแก้ปัญหาชื่อตารางหรือชื่อเมนู เช่น Supplierss ที่มีตัว s 2 ตัวและให้เป็นภาษาไทยด้วย มีวิธีการทำดังนี้
- ที่ไฟล์ models.py เดิม ให้สร้างคลาส Meta อยู่ระหว่างฟิลด์ Homepage และ def __uncode__(self): ให้พิจารณาตัวอักษรสีแดง และการจัดย่อหน้าต้องตรงกันกับฟิลด์ตัวบน เป็นดังนี้
:
Homepage = models.URLField(blank=True,verify_exists=True,verbose_name='เว็บไซต์')
class Meta:
verbose_name_plural = 'ข้อมูลผู้จัดจำหน่วย'
verbose_name = 'ข้อมูลผู้จัดจำหน่วย'
ordering =['CompanyName'] # ordering เทียบเท่า order by
def __unicode__(self):
return self.CompanyName
ขั้นตอนถัดไปเป็นการทดลองดูผลการเปลี่ยนแปลง
ถ้ายังไม่ปิด Browser หรือ Stop การ runserver ก็สามารถกดปุ่ม F5 เพื่อ refresh หน้าเว็บนั้นได้ทันที ผลการทำงานดังแสดงในภาพด้านล่าง ซึ่งผมทดลองไม่ป้อนบางฟิลด์ มันแสดงผล Validate ให้ผู้ใช้ทราบด้วย

ที่เป็นจุดเด่นของ Django ที่ขอตั้งข้อสังเกตไว้ให้ทราบดังนี้
- เมื่อพิจารณาคำสั่งที่สร้างฟิลด์โทรศัพท์ และ Home page ได้กำหนดค่าว่า blank=True นั่นหมายความว่ายอมให้ผู้ใช้ไม่ต้องป้อนก็ได้ หรือ คำศัพท์ใน Database ก็คือ null value
- ในฟิลด์ Home page ได้กำหนดว่า verify_exists=True นั้นเป็นการตรวจสอบการป้อน url ว่ามั่วนิ่มหรือไม่
- ยังมีจุดเด่นอีกหลายอย่างซึ่งจะได้นำมาเสนอในโอกาสต่อไป
