У меня есть класс, предназначенный для работы с PostGreSQL дб:питон __setattr__ приписывать проблемы
dbclass = DBclass(1)
class DBclass(object):
select_query = 'SELECT * FROM "{table}" WHERE {table}_id=%s'
def __init__(self, id=None):
self.__id = id
self.__table = self.__class__.__name__.lower()
И я __setattr__
перегружен:
def __setattr__(self, name, value):
super(DBclass, self).__setattr__(name, value)
self.load()
И метод, используемый для подключения для загрузки содержимого из БД:
def load(self):
# Here I send select query and get two remaining values
С этим __setattr__
Я могу инициализировать только __id
и __table
значения. Есть еще два поля, которые находятся в моей базе данных, которые не загружаются. Я не могу их инициализировать, используя __setattr__
, потому что переменная __table
еще не инициализирована, а также __id
, и python не может вызвать метод загрузки и отправить запрос.
Возможно, я поставил неправильную логику в своем решении, и значения из db не должны инициироваться так.
В следующий раз включите ошибку, которую вы получаете при попытке присвоить значения. Я подозреваю, что load() запускает несколько разных ошибок в зависимости от условий, и было бы легче быть уверенными в ответах при включении ошибок. Это также помогает показать, что вы попробовали пару вещей, прежде чем обращаться за помощью. – acrosman