Django Academy · บทเรียน

str และคลาส Meta

ทำให้ออบเจ็กต์อ่านเข้าใจง่ายและกำหนดพฤติกรรมตาราง

บทเรียน 4 จาก 413 ขั้นตอน

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. กำหนดคลาสโมเดล
  2. เลือกชนิดฟิลด์
  3. ตัวเลือกฟิลด์: null, blank, default
  4. str และคลาส Meta
← กลับไปที่ Django Academy