我正在尝试使用django-field-history跟踪外键,但是当我添加它时,它会使用模型在每个页面上进行其他查询
例如
from field_history.tracker import FieldHistoryTracker
class Author(models.Model):
user = models.ForeignKey('auth.user)
field_history = FieldHistoryTracker(['user'])
将始终使用Author在网页上提供更多查询,
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = '2'
1239 similar queries. Duplicated 1235 times.
我尝试在Field History Tracker中使用user_id而不是user,但是它将始终返回None。使用user.id或类似的东西只会返回错误。
我确实需要保留该历史记录数据,但不必以成千上万的额外查询为代价。
此外,在整个数据库正在使用django-field-history的同时,我真的很乐意保留它,但是我知道我可能不得不切换软件包,如果这样的话,您会建议哪一个?
答案 0 :(得分:0)
据我所知,您正在尝试记录哪个用户已更新,为此,您应按照documentation中所述使用_field_history_user
。
例如:
class Pizza(models.Model):
name = models.CharField(max_length=255)
updated_by = models.ForeignKey('auth.User')
field_history = FieldHistoryTracker(['name'])
@property
def _field_history_user(self):
return self.updated_by
它将始终更新哪个用户更新了该表的行。