Я использую django-simple-history
для ведения истории изменений моей модели.
Я пытаюсь связать пользователя, меняющего объект службы, используя предложенный способ здесь
models.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
это экземпляр пользователя, тогда почему он дает эту ошибку?