Django, поле модели без персистентности - None
В моей модели есть неперсистентное поле под названием 'client_secret'. Поле client_hash используется в методе сохранения пользовательской модели для вычисления хэша. Все работает как ожидалось, но когда я попытался сохранить новый экземпляр, self.client_secret все еще None
, почему?
class Client(models.Model):
client_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
active = models.BooleanField(default=False)
client_hash = models.BinaryField(editable=False, blank=True, null=True)
# non-persistent field used to cal the hash
client_secret = None
def save(self, *args, **kwargs):
if self._state.adding:
self.client_hash = make_hash(self.client_secret)
Попытка сохранить нового клиента, client_secret is None в модели сохранения:
Client.objects.create(active=True, client_secret='test_secret')