Я новичок в использовании как SQLALCHEMY
, так и PYRAMID
веб-фреймворка. Я борюсь с тем, что может быть простым решением для некоторых, но я не смог понять это. Я просмотрел некоторые сообщения здесь стеки, но они не совсем отвечают на мою проблему.
У меня есть отношение 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
Я могу вернуть все объекты, кроме категорий. Ниже приведена соответствующая ошибка и код.
ВЫСЛЕЖИВАТЬ:
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}