万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Djangoのauto_now=Trueの罠

Modelで、auto_now=Trueにしてしまうと、 timestampは、editable=Trueをしてもadmin上に表示されない

    timestamp = models.DateTimeField(editable=True)

なので、save()をオーバーライドして対処する必要がある。

参考: http://stackoverflow.com/questions/1737017/django-auto-now-and-auto-now-add

    def save(self, *args, **kwargs):
        ''' On save, update timestamps '''
        if not self.id:
            self.timestamp = datetime.datetime.today()

        return super(自分のクラス名, self).save(*args, **kwargs)

ここもいいかもしれない。

Djangoの DateTimeField の auto_now と auto_now_add - Ian Lewis