Я работаю в Python Eve на основе RESTful-сервиса с использованием SQLAlcemy бэкэнд. У меня есть две модели с одной ко многим отношений:Python Eve, SQLalchemy и ForeignKey
class User(CommonColumns):
"""Model of an user in the database"""
__tablename__ = "user"
id = Column(Integer, primary_key=True)
username = Column(String, unique=True)
email = Column(EmailType, unique=True)
folders = relationship('Folder', backref='user')
def __unicode__(self):
return self.username
class Folder(CommonColumns):
"""Model of an user in the database"""
__tablename__ = "folder"
id = Column(Integer, primary_key=True)
name = Column(String, unique=True)
user_id = Column(Integer, ForeignKey('user.id'), nullable=False)
def __unicode__(self):
return "{}/{}".format(self.user.username, self.name)
CommonColumns
определяется следующим here
Это прекрасно работает при вставке, обновлении и удалении users
. Тем не менее, я не могу получить вставив право на folders
:
newfolder = {
'name':'FOLDER',
'user_id': 1,
}
response = requests.post("http://localhost:8080/api/v1.0/folders",data=newfolder)
print response.json()
{u'_error': {u'code': 422,
u'message': u'Insertion failure: 1 document(s) contain(s) error(s)'},
u'_issues': {u'exception': u"'user'"},
u'_status': u'ERR'}
который является сообщение довольно загадочное об ошибке. Я читал документацию Python Eve, и я не могу понять, что я делаю неправильно. Единственная разница, которую я вижу между user
и folder
, заключается в том, что у вас есть внешние ключи.
Любая идея, почему это происходит?
Не могли бы вы рассказать о своем решении ... Я в подобной ситуации. Таблица B имеет внешний ключ в таблице A. Вставка в таблицу A (родительская) в порядке, но при попытке вставить в таблицу B выдает ошибку '' cpa_id ":« неизвестное поле »' – dnafication