strとMetaクラス
オブジェクトを読みやすくし、テーブルの動作を設定します
「strとMetaクラス」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
Make Objects Readable
Out of the box, a model object prints as a vague Object 1. You can fix that and also shape table behavior cleanly.
Define __str__
Add a __str__ method to return a friendly label. Now your object shows its title instead of a useless number.
class Book(models.Model):
title = models.CharField(max_length=200)
def __str__(self):
return self.titleWhere __str__ Shows Up
That __str__ label appears in the admin, the shell, and templates, making every object instantly recognizable. 👀
Always Return a String
Your __str__ must return a string. If a field might be a number, wrap it with str() before returning it.
def __str__(self):
return str(self.year)Meet the Meta Class
An inner Meta class holds options about the model as a whole, separate from its fields. It tunes how the table behaves.
class Book(models.Model):
class Meta:
ordering = ["title"]ordering Sets Default Sort
The ordering Meta option sets how query results sort by default, so lists come back in a predictable order.
class Meta:
ordering = ["-created"]Friendly Names with verbose_name
Use verbose_name and verbose_name_plural in Meta to control the labels Django shows in the admin interface.
class Meta:
verbose_name_plural = "Books"Custom Table Name
Override the generated table name with db_table in Meta when you need to match an existing or legacy database.
class Meta:
db_table = "catalog_books"Cross-Field Uniqueness
The unique_together Meta option requires a combination of fields to be unique, like one slug per author.
class Meta:
unique_together = ["author", "slug"]Meta Describes the Model
Think of Meta as settings for the whole model, while fields and __str__ describe its data and display.
Both Are Optional but Worth It
You can skip __str__ and Meta, but adding them makes your models far nicer to work with day to day.
Quick Check
What is the main job of the __str__ method on a model?
Recap: __str__ and Meta
You learned that __str__ gives objects a readable name and the Meta class tunes model-wide behavior like ordering and names. Polished models! 🎉
よくある質問
「strとMetaクラス」レッスンは無料ですか?
はい。「strとMetaクラス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。
「strとMetaクラス」で何を学びますか?
オブジェクトを読みやすくし、テーブルの動作を設定します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Django Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「strとMetaクラス」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDjango Academyレッスンでコードを書いて実行できますか?
はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。