Date Modified Tags django / python

Djangoのキャッシュで「Instancemethod objects can't pickle」

Djangoでオブジェクトをキャッシュしておこうと思ったら、「Instancemethod objects can't pickle」みたいなエラーが出てキャッシュできなかった。

結論から言うとオブジェクト内で別のオブジェクトを作って、ごにょごにょやってるようなコードを書くと、そのオブジェクトは上手くキャッシュしてくれないらしい。エラーメッセージ見てもよくわかんないよ><。まぁそんな変なコード書くなということですね。はい。

from django.db import models
class Hoge(models.Model):
    hoge=models.TextField(primary_key=True)
    hogege=models.TextField()
    def hogegege(self):
        f = Fuga()
        ...Fugaの読み込み処理みたいな
        self.hoge = f.fuga
        self.hogege = f.fugaga
        return self
class Fuga(models.Model):
    fuga=models.TextField(primary_key=True)
    fugaga=models.TextField()

みたいなコードでHoge().hogegege()みたいにしたものをキャッシュしようとすると上手くいかなかった。今後こんなコード書かないようにメモ