Я довольно новичок в использовании как SQLALCHEMY
, так и веб-рамки PYRAMID
. Я борюсь за то, что может быть простым решением для некоторых, но я не смог понять это. Я посмотрел на некоторые postshere onStacks, но они не совсем отвечают на мою проблему.AttributeError: 'InstrumentedList'
У меня есть many-to-many
отношения в моей таблице database
. Я пытаюсь создать return
объект (categories
) из родительской таблицы assessment
. Я пытаюсь на данный момент: return {'name': assessment.name, 'text': assessment.text, 'user': assessment.user_id, 'video':assessment.video_id, 'categories': assessment.categories.assessment_category_link}
, но это не сработает ->'categories': assessment.categories.assessment_category_link
Я могу вернуть все объекты, кроме категорий. Ниже приведена соответствующая ошибка и код.
след вызовов TRACEBACK:
line 306, in get_assessment
return {'name': assessment.name, 'text': assessment.text, 'user': assessment.user_id, 'video':assessment.video_id, 'categories': assessment.categories.assessment_category_link}
AttributeError: 'InstrumentedList' object has no attribute 'assessment_category_link'
SQLAlchemy ТАБЛИЦА/СВЯЗЬ:
# MANY-to-MANY
association_table = Table('assessment_category_link', Base.metadata,
Column('assessment_id', Integer, ForeignKey('assessments.assessment_id')),
Column('category_id', Integer, ForeignKey('categories.category_id')))
class Assessment(Base):
# column/entity code
categories = relationship('Category', secondary='assessment_category_link', backref='assessments')
def __init__(self, name, text, user, video, categories):
# CODE
self.categories = categories
Метод
GET(), а именно значениеreturn
, что бросает ошибку:
@view_config(route_name='assessment', request_method='GET', renderer='json')
def get_assessment(request):
with transaction.manager:
assessment_id = int(request.matchdict['id'])
assessment = api.retrieve_assessment(assessment_id)
if not assessment:
raise HTTPNotFound()
return {'name': assessment.name, 'text': assessment.text, 'user': assessment.user_id, 'video':assessment.video_id, 'categories': assessment.categories.assessment_category_link}
Я пытаюсь отобразить объекты для печати на шаблоне JINJA, например {{evaluation.categories}} – thesayhey
Основываясь на вашем ответе, я предполагаю, что я просто должен вручную ввести их в шаблон как HTML. – thesayhey
, то зачем вам нужен объект ассоциации? просто перебирайте список категорий – architectonic