程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Flask psycopg2.errors.NotNullViolation) 关系 \"message\" 列 \"category_id\" 中的空值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Flask psycopg2.errors.NotNullViolation) 关系 \"message\" 列 \"category_id\" 中的空值?

开发过程中遇到Flask psycopg2.errors.NotNullViolation) 关系 \"message\" 列 \"category_id\" 中的空值的问题如何解决?下面主要结合日常开发的经验,给出你关于Flask psycopg2.errors.NotNullViolation) 关系 \"message\" 列 \"category_id\" 中的空值的解决方法建议,希望对你解决Flask psycopg2.errors.NotNullViolation) 关系 \"message\" 列 \"category_id\" 中的空值有所启发或帮助;

我无法删除与消息模型有关系的类别

我在 db 有检查值并且外键已经存在

完整回复:

{
"error": "(psycopg2.errors.NotNullViolation) null value in column \"category_ID\" of relation \"message\" violates not-null consTraint\nDETAIL:  Failing row contains (2,ruby,202,2021-02-13 19:03:01.818877,null,f).\n\n[sql: updatE message SET category_ID=%(category_ID)s WHERE message.ID = %(message_ID)s]\n[parameters: {'category_ID': None,'message_ID': 2}]\n(BACkground on this error at: http://sqlalche.me/e/13/gkpj)"

}

在 API/vIEws/security.py

 from flask_httpauth import httpBasicAuth

 auth = httpBasicAuth()

class Authrequiredresource(resourcE):
     method_decorators = [auth.login_required]

在 API/vIEws/category.py

class categoryresource(AuthrequiredresourcE):

    def delete(self,ID):
         category = categorymodel.query.get_or_404(ID)
         try:
             category.delete(category)
             return "",status.http_204_NO_CONTENT
        except sqlAlchemyError as e:
             db.session.rollBACk()
             return {"error": str(E)},status.http_400_BAD_requEST

在 API/models/generic.py

class Addupdatedelete:

    def add(self,resourcE):
        db.session.add(resourcE)
        return db.session.commit()

    def update(self):
        return db.session.commit()

    def delete(self,resourcE):
        db.session.delete(resourcE)
        return db.session.commit()

在 API/models/category.py

class categorymodel(db.Model,AddupdateDelete):

    __tablename__ = "category"

    ID = db.column(db.Integer,priMary_key=True,autoincrement=TruE)
    name = db.column(db.String(150),unique=True,nullable=False)

    def __init__(self,Name):
        self.name = name

在 API/models/message.py

class messageModel(db.Model,AddupdateDelete):

    __tablename__ = "message"

    ID = db.column(db.Integer,priMary_key=TruE)
    message = db.column(db.String(250),nullable=False)
    duration = db.column(db.Integer,nullable=False)
    creation_date = db.column(
    db.timestAMP,server_default=db.func.CURRENT_TIMESTAMP(),nullable=False
    )
    category_ID = db.column(
    db.Integer,db.ForeignKey("category.ID",ondelete="CASCADE"),nullable=False
    )
    category = db.relationship(
    "categorymodel",BACkref=db.BACkref(
        "messages",lazy="dynamic",order_by="messageModel.creation_date"
    ),)
    printed_times = db.column(db.Integer,nullable=False,server_default="0")
    printed_once = db.column(db.Boolean,server_default="false")

    def __init__(self,message,duration,category):
        self.message = message
        self.duration = duration
        self.category = category

删除类别的请求和响应

See request & response

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Flask psycopg2.errors.NotNullViolation) 关系 \"message\" 列 \"category_id\" 中的空值全部内容,希望文章能够帮你解决Flask psycopg2.errors.NotNullViolation) 关系 \"message\" 列 \"category_id\" 中的空值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。