私は、デフォルトのログ・エントリクラスのために使用されたモデルを変更したいのDjangoのadminログ・エントリモデルを上書きするにはどうすればよいです私はそれは属性のデータベース内のCLOBではなく、varchar型を作成し、「OBJECT_ID」</p> <p>は、元のモデルがあるので、私は
へのobject_idの定義を変更したいジャンゴに/ contrib /管理/ models.py
class LogEntry(models.Model):
action_time = models.DateTimeField(_('action time'), auto_now=True)
user = models.ForeignKey(settings.AUTH_USER_MODEL)
content_type = models.ForeignKey(ContentType, blank=True, null=True)
object_id = models.TextField(_('object id'), blank=True, null=True)
object_repr = models.CharField(_('object repr'), max_length=200)
action_flag = models.PositiveSmallIntegerField(_('action flag'))
change_message = models.TextField(_('change message'), blank=True)
で定義されています
object_id = models.Charfield(_('object id'), max_length=1000, blank=True, null=True)
誰かがvarchar(1000)より大きいエンティティにプライマリキーを定義した場合、このような問題が発生する可能性がありますが、そのように定義されたPKを持つエンティティは必要ありません限界に満足しています。
これにより、履歴ログにアクセスするときのクエリの効率が大幅に向上します。
私は本当に実際のモデル定義をハックしたくありませんが、モデル定義をエレガントにオーバーライドする方法を見つけることはできません。
アイデア?