[英]flask-sqlalchemy foreignkey populating table with null
我試圖在我的flask-sqlalchemy中的一個表上實現一個外鍵,但一直收到這個錯誤:
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) null value in column "user_id" of relation "applications" violates not-null constraint DETAIL: Failing row contains (3, Company ABC, Software Engineer, New York, NY, USA, Applied, , 2022-09-09, null).
這是代碼:
from flask_login import UserMixin
from database.database import db
class User(UserMixin, db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(), nullable=False)
password = db.Column(db.String(), nullable=False)
name = db.Column(db.String(), default='', nullable=True)
application = db.relationship('JobApplicationTracker', lazy=True,backref='author')
def __repr__(self) -> str:
return self.email
def __str__(self) -> str:
return self.email
代碼:
from database.database import db
class JobApplicationTracker(db.Model):
__tablename__ = 'applications'
id = db.Column(db.Integer, primary_key=True, nullable=False)
name = db.Column(db.String(), nullable=False)
title = db.Column(db.String(), nullable=False)
location = db.Column(db.String(), nullable=False)
status = db.Column(db.String(), nullable=False)
notes = db.Column(db.String(), default='', nullable=True)
date_applied = db.Column(db.String(), nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
def __repr__(self):
return f'{self.title} at {self.name}'
def __str__(self):
return f'{self.title} at {self.name}'
我有一個“應用程序”表和一個“用戶”表。
問題是因為您在 JobApplicationTracker model 中為 user_id 列設置了 nullable=False,但是在嘗試添加時,您正在為 user_id 傳遞 null 值。
您可以嘗試創建一個用戶,傳遞該用戶 ID,然后一切正常。 如果您希望它在沒有用戶 ID 的情況下工作,請嘗試使用 nullable=true。 同樣,在 model 中更改它不會反映在表中。 您可能必須在數據庫中手動更改它
看起來我沒有傳入用戶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.