気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【メモ】Djangoクラスベースビュー(DetailView)でモデルフィールドの値を加工する

  • get_objectをオーバーライドする
  • super(My, self).get_object()で、対象のオブジェクトを取得し、加工
  • 加工したオブジェクトをreturn
# models.py
from django.db import models

class Any(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name


# views.py
from django.views.generic.detail import DetailView


class AnyDetailView(DetailView):
    model = Any
    
    def get_object(self, **kwargs):
        object = super(AnyDetailView, self).get_object()
        object.name = object.name + "any_detail!"
        return object