Я использую Flask_WTF / WTForms с SQLAlchemy, подключенным к mySQL БД. Используя SQLAlchemy, я использую ChoiceType для определения раскрывающегося списка в форме. При определении этого параметра как переменной в определении модели все работает отлично, однако я хочу сохранить данные выбора в базе данных, чтобы их можно было настроить через приложение позже (т.е. при необходимости добавляются дополнительные параметры).
Я могу легко определить список требуемых кортежей с помощью запроса к базе данных таблицы, в которой хранятся данные выбора, однако, когда я пытаюсь запустить это из класса Model для установки переменной, я получаю сообщение об ошибке:
sqlalchemy.exc.InvalidRequestError: When initializing mapper mapped class User->users, expression 'PersonRatings' failed to locate a name ('PersonRatings'). If this is a class name, consider adding this relationship() to the <class 'memberapp.Models.User'> class after both dependent classes have been defined.
Конфигурация модели выглядит следующим образом:
class PersonRatings(db.Model):
__tablename__ = 'person_ratings'
RATING_TYPES = []
_RATING_TYPES = RatingTypes.query.all()
for rating in _RATING_TYPES:
RATING_TYPES.append((rating.rating_code, rating.rating_description))
user_id = db.Column(db.Integer, db.ForeignKey(User.id), primary_key=True)
rating_id = db.Column(db.Integer, info={'choices': RATING_TYPES}, primary_key=True)
rating_expiry = db.Column(db.Date)
def __repr__(self):
return f'<Ratings: {self.user_id}, {self.rating_id}'
Есть ли способ передать данные базы данных в переменную выбора?