Python SQLAlchemy onupdate context.current_参数在内容未更新时中断流
我有一个使用SQL Alchemy的烧瓶应用程序。 我有一个特定的字段,它被设置为使用python方法来修改其更新内容 代码如下:Python SQLAlchemy onupdate context.current_参数在内容未更新时中断流,python,python-2.7,flask,sqlalchemy,flask-sqlalchemy,Python,Python 2.7,Flask,Sqlalchemy,Flask Sqlalchemy,我有一个使用SQL Alchemy的烧瓶应用程序。 我有一个特定的字段,它被设置为使用python方法来修改其更新内容 代码如下: def convert_markdown_to_html(context): #pdb.set_trace() return markdown2.markdown(context.current_parameters['content_markdown']) 以及型号代码: class Event(db.Model): __tablenam
def convert_markdown_to_html(context):
#pdb.set_trace()
return markdown2.markdown(context.current_parameters['content_markdown'])
以及型号代码:
class Event(db.Model):
__tablename__ = "event"
id = db.Column(db.Integer, primary_key=True)
event_name = db.Column(db.String, nullable=False)
event_details = db.Column(db.String, nullable=False, onupdate=convert_markdown_to_html) # will store html content
content_markdown = db.Column(db.String, nullable=True) # the markdown of event_details
event_date = db.Column(db.Date, nullable=False)
tickets_available = db.Column(db.Integer, nullable=False)
tickets_left = db.Column(db.Integer, nullable=False)
ticket_price = db.Column(db.Integer, nullable=True)
ticket_price_member = db.Column(db.Integer, nullable=True)
is_price = db.Column(db.Boolean())
attendees = db.relationship('Event_records', backref=db.backref('attendees'))
问题是,偶尔会在不更新内容的情况下更新事件
发生这种情况时,应用程序会中断,因为
context.current_parameters['content_markdown']
不存在
目前,我正在愚蠢地对此进行黑客攻击,在可以想象的情况下更新活动的地方包括以下内容:
result.content_markdown = result.content_markdown + ' '
理想情况下,我希望避免使用数百个空格污染我的描述/内容标记,但我不确定如何最好地避免破坏程序
我可以在实际的update方法中,而不是在model类中,将markdown转换为html,但是这对我来说是非常不合适的,因为我已经在模型代码的其他地方使用convert_markdown_to_html(在永远不会破坏我的应用程序的情况下,因为字段总是更新的)
如果onupdate方法所需的内容不可用,是否有任何方法可以有效且干净地避免运行onupdate方法
提前感谢可能会进行如下检查:
如果上下文中有“内容”标记。在将标记转换为html方法中的当前参数
?这将不起作用。如果我们不返回任何内容,返回值将为None
,因此event\u details
字段将重置为NULL
。您是否找到了此问题的解决方案?