Я пытаюсь реализовать пользовательское поле в моей модели, следуя документам . Моя модель выглядит следующим образом:
class User(AbstractUser):
uid = models.CharField(
"uid", max_length=255, null=True, blank=True)
phone_number = models.CharField(
"Phone number", max_length=255, null=True, blank=True)
nickname = models.CharField(
"Nickname", max_length=255, null=True, blank=True)
eth_address = models.CharField("Eth address", max_length=255, null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
# deleted
class eth_address_decrypted(models.Field):
description = 'eth_address_decrypted'
def __init__(self, *args, **kwargs):
return decrypt_string(self.eth_address)
class Meta:
db_table = "users"
pass
У меня есть поле eth_address
, значение которого равно в зашифрованном виде мне нужно отобразить расшифрованное значение во внешнем интерфейсе, поэтому я написал модель настраиваемого поля в качестве документа и вызвал ее на моем внешнем интерфейсе с помощью запроса:
User.objects.get (eth_address_decrypted = value )
Но возвращается следующая ошибка:
Cannot resolve keyword 'eth_address_decrypted' into field. Choices are: created, date_joined, email, eth_address,
Что я делаю не так?
Есть ли способ, которым я могу вызвать user.eth_address_decrypted
для объекта в качестве настраиваемого поля или функции без его миграции? (потому что eth_address_decrypted просто преобразование из существующего eth_adress)