str และคลาส Meta
ทำให้ออบเจ็กต์อ่านเข้าใจง่ายและกำหนดพฤติกรรมตาราง
str และคลาส Meta เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
ทำให้อ็อบเจ็กต์อ่านเข้าใจง่าย
ตามค่าเริ่มต้น อ็อบเจ็กต์ของโมเดลจะแสดงเป็น Object 1 ที่ไม่สื่อความหมาย คุณสามารถแก้ไขได้ และยังจัดรูปแบบการทำงานของตารางให้เป็นระเบียบได้ด้วย
กำหนด __str__
เพิ่มเมธอด __str__ เพื่อส่งคืนป้ายกำกับที่อ่านเข้าใจง่าย จากนั้นอ็อบเจ็กต์ของคุณจะแสดงชื่อเรื่องแทนตัวเลขที่ไม่มีประโยชน์
class Book(models.Model):
title = models.CharField(max_length=200)
def __str__(self):
return self.title__str__ ปรากฏที่ใดบ้าง
ป้ายกำกับจาก __str__ จะปรากฏในส่วนผู้ดูแลระบบ เชลล์ และแม่แบบ ทำให้ระบุอ็อบเจ็กต์แต่ละรายการได้ทันที 👀
ส่งคืนสตริงเสมอ
__str__ ต้องส่งคืนสตริง หากฟิลด์อาจเป็นตัวเลข ให้ครอบค่าด้วย str() ก่อนส่งคืน
def __str__(self):
return str(self.year)ทำความรู้จักคลาส Meta
คลาส Meta ภายในใช้เก็บตัวเลือกที่เกี่ยวข้องกับโมเดลทั้งชุด แยกจากฟิลด์ต่าง ๆ และใช้ปรับพฤติกรรมของตาราง
class Book(models.Model):
class Meta:
ordering = ["title"]ordering กำหนดการเรียงลำดับเริ่มต้น
ตัวเลือก ordering ใน Meta กำหนดวิธีเรียงผลลัพธ์การสืบค้นตามค่าเริ่มต้น ทำให้รายการต่าง ๆ แสดงตามลำดับที่คาดเดาได้
class Meta:
ordering = ["-created"]ชื่อที่อ่านง่ายด้วย verbose_name
ใช้ verbose_name และ verbose_name_plural ใน Meta เพื่อควบคุมป้ายกำกับที่ Django แสดงในส่วนติดต่อผู้ดูแลระบบ
class Meta:
verbose_name_plural = "Books"ชื่อของตารางแบบกำหนดเอง
กำหนดชื่อของตารางที่สร้างขึ้นใหม่ด้วย db_table ใน Meta เมื่อต้องการให้ตรงกับฐานข้อมูลเดิมหรือฐานข้อมูลรุ่นเก่า
class Meta:
db_table = "catalog_books"ความไม่ซ้ำกันข้ามฟิลด์
ตัวเลือก unique_together ใน Meta กำหนดให้ชุดค่าจากหลายฟิลด์ต้องไม่ซ้ำกัน เช่น ให้มี slug ได้หนึ่งรายการต่อผู้เขียนหนึ่งคน
class Meta:
unique_together = ["author", "slug"]Meta อธิบายโมเดล
ให้คิดว่า Meta คือการตั้งค่าสำหรับโมเดลทั้งชุด ส่วนฟิลด์และ __str__ ใช้อธิบายข้อมูลและการแสดงผลของโมเดล
ทั้งสองอย่างไม่บังคับ แต่มีประโยชน์
คุณสามารถไม่ใช้ __str__ และ Meta ได้ แต่การเพิ่มทั้งสองอย่างจะทำให้ใช้งานโมเดลในแต่ละวันได้สะดวกขึ้นมาก
ตรวจสอบความเข้าใจสั้น ๆ
หน้าที่หลักของเมธอด __str__ ในโมเดลคืออะไร
ทบทวน: __str__ และ Meta
คุณได้เรียนรู้ว่า __str__ ทำให้อ็อบเจ็กต์มีชื่อที่อ่านเข้าใจง่าย ส่วนคลาส Meta ใช้ปรับพฤติกรรมของโมเดลทั้งชุด เช่น การเรียงลำดับและชื่อ โมเดลจึงเรียบร้อยและใช้งานได้ดีขึ้น 🎉
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “str และคลาส Meta” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “str และคลาส Meta” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “str และคลาส Meta”
ทำให้ออบเจ็กต์อ่านเข้าใจง่ายและกำหนดพฤติกรรมตาราง คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “str และคลาส Meta” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม
ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- กำหนดคลาสโมเดล
- เลือกชนิดฟิลด์
- ตัวเลือกฟิลด์: null, blank, default
- str และคลาส Meta