如何覆盖django admin LogEntry模型

时间:2017-09-19 13:50:18

标签: python django django-models django-admin

我想更改用于默认LogEntry类的模型,以便在数据库中为属性创建一个varchar而不是clob" object_id"

原始模型在

中定义
  

的django /了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的定义更改为

object_id = models.Charfield(_('object id'), max_length=1000,  blank=True, null=True)

我知道如果有人在一个大于varchar(1000)的实体上定义了一个主键,这可能会导致问题,但我不想要一个像这样定义PK的实体。我很满意这个限制。

这将大大提高访问历史记录日志时查询的效率。

我真的不想破解实际的模型定义,但我无法找到如何优雅地覆盖模型定义。

有什么想法吗?

0 个答案:

没有答案