Django リスト表示
リスト表示を更に読みやすくする
モデルをリストとして表示すると、Djangoは各レコードをレコードオブジェクトの文字列表現として表示します。この場合は、"Member object(1)"、"Member object(2)"などです。
これをより読みやすい形式に変更するには、次の2つの選択肢があります。
- メンバーモデルの文字列表現関数
__str__()
を変更する - メンバーモデルの
list_details
プロパティを設定します
文字列表現関数の変更
文字列表現を変更するには、次のように、models.py
でメンバーモデルの__str__()
関数を定義する必要があります。
my_tennis_club/members/models.py
:
from django.db import models
class Member(models.Model):
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
phone = models.IntegerField(null=True)
joined_date = models.DateField(null=True)
def str(self):
return f"{self.firstname} {self.lastname}";
これにより、次の結果が得られます。
独自の定義__str__()
関数はDjangoの機能ではなく、Pythonでオブジェクトの文字列表現を変更する方法です。Pythonオブジェクトの詳細については、Pythonオブジェクトのチュートリアルをご覧ください。
list_displayを設定する
admin.py
ファイルのlist_display
プロパティでフィールドを指定することで、表示するフィールドを制御できます。
まずMemberAdmin()
クラスを作成し、次のようにlist_display
タプルを指定します。
my_tennis_club/members/admin.py
:
from django.contrib import admin
from .models import Member
# Register your models here.
class MemberAdmin(admin.ModelAdmin):
list_display = ("firstname", "lastname", "joined_date",)
admin.site.register(Member, MemberAdmin)
MemberAdminをadmin.site.register(Member, MemberAdmin)
の引数として忘れずに追加してください。
ブラウザに戻ると、次の結果が表示されます。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。