Python 似乎找不到Not Null失败错误的原因

Python 似乎找不到Not Null失败错误的原因,python,Python,现在我遇到了一个小问题,我知道这是一个小问题,但我让程序员阻塞,似乎无法找出这个错误是从哪里来的。我正在创建一种向其他用户发送好友请求的方法 所发生的情况是,登录的人将搜索用户并被定向到他们的个人资料。然后有一个addfriend链接,它将发送loggedin用户记录和搜索的用户记录。然后,它将获取两个用户名,并将它们保存在数据库表中,并添加一个状态 relationship.py文件中的代码块: def Send_Valid_Request(User, Request): newRe

现在我遇到了一个小问题,我知道这是一个小问题,但我让程序员阻塞,似乎无法找出这个错误是从哪里来的。我正在创建一种向其他用户发送好友请求的方法

所发生的情况是,登录的人将搜索用户并被定向到他们的个人资料。然后有一个addfriend链接,它将发送loggedin用户记录和搜索的用户记录。然后,它将获取两个用户名,并将它们保存在数据库表中,并添加一个状态

relationship.py文件中的代码块:

def Send_Valid_Request(User, Request):

    newRequest = Friends(User_1 = User.Username,
                         User_2 = Request.Username,
                         Status = 1)
    db_session.add(newRequest)
    db_session.commit()

    relationship = db_session.query(Friends).\
                        filter(and_(Friends.User_1 == User.Username,
                                    Friends.User_2 == Request.Username)).\
                        filter(Friends.Status == 1).\
                        first()

    if relationship == None:
        flash('There was an error with the request')
        return redirect(url_for('UserProfile', current_user = Request.Username))
    else:
        flash('A request to ' + Request.Username + ' has been sentf')
        return redirect(url_for('Home'))
这是表格:

class Friends(Base):
    __tablename__ = 'friends'

    ID = Column(Integer, primary_key = True)
    User_1 = Column(String(22), nullable = False, index = True)
    User_2 = Column(String(22), nullable = False, index = True)
    Status = Column(Integer, nullable = False)
下面是我得到的错误:

IntegrityError: (IntegrityError) NOT NULL constraint failed: Friends.Created u'INSERT INTO friends ("User_1", "User_2", "Status") VALUES (?, ?, ?)' (u'omarjandali', u'hanijandali', 1)

Traceback (most recent call last)
File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/vagrant/roadtrip/website/__init__.py", line 270, in SendRequest
Send_Valid_Request(currentUser, requestUser)
File "/vagrant/roadtrip/website/relationships.py", line 57, in Send_Valid_Request
db_session.commit()

发生此错误的原因是,在您的
Friends
模式中,您添加了
ID
列,但在插入时您没有提供该列

  ID = Column(Integer, primary_key = True)

这是因为
ID
列不是自动递增的。检查您的数据库是否提供自动递增序列键。

如果您从模型中构建架构,还可以将
autoincrement=True
添加到列定义中。我删除了所有代码并完全重建了路由,然后它就工作了