我django-simple-history
用来维护我的模型更改的历史记录。
我正在尝试使用此处建议的方式关联用户更改服务对象
模型.py
class UserTrackMixin(models.Model):
changed_by = models.ForeignKey(User, null=True, on_delete=models.DO_NOTHING)
@property
def _history_user(self):
return self.changed_by
@_history_user.setter
def _history_user(self, value):
self.changed_by = value
class Meta:
abstract = True
class Service(BaseModel, UserTrackMixin):
name = models.CharField(max_length=200)
serviceType = models.CharField(max_length=200)
history = HistoricalRecords()
但是,当我尝试将用户对象分配_history_user
给服务对象的属性时,它会给出如下所述的错误。
u1=User.objects.first()
<User: User object (07ab8565-26c7-4bfa-a92e-e12bf924160a)>
s._history_user = u1
s.save()
ValueError: Cannot assign "<User: User object (07ab8565-26c7-4bfa-a92e-e12bf924160a)>": "HistoricalService.history_user" must be a "User" instance.
然后我尝试了这个:
s.changed_by = u1
s.save()
这也给出了同样的错误。
u1
是用户实例,那为什么会出现这个错误?