gpt4 book ai didi

Python Eve、SQLalchemy 和 ForeignKey

转载 作者:太空狗 更新时间:2023-10-30 01:07:08 25 4
gpt4 key购买 nike

我正在使用基于 Python Eve 的 RESTful 服务和 SQLAlcemy 后端。我有两个具有一对多关系的模型:

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

这在插入、更新和删除用户时非常有效。但是,我无法正确插入文件夹:

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 的文档,但我无法真正理解我做错了什么。我在 userfolder 插入之间看到的唯一区别是一个有外键。

知道为什么会这样吗?

最佳答案

好吧,问题似乎是我没有相同的资源名称和表名称(“用户”表示资源,“用户”表示表名称)。这似乎会在 eve 中引发外键问题,但对于没有关系的实体不会失败。

更改表名称以匹配资源名称解决了问题。

我希望这对任何人都有用。

关于Python Eve、SQLalchemy 和 ForeignKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33123883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com