【发布时间】:2015-09-01 11:51:55
【问题描述】:
我使用 Flask/Jinja2 将简单的模型渲染到表格中。一切正常,但如果我尝试排序和属性可以是无,我得到一个
TypeError: unorderable types: NoneType() < NoneType()
我实现了__lt__、__gt__ 方法以便能够对我的对象进行排序。
我的第一堂课是任务课。它有一个 Person 类的外键。我想按 Person-class 排序,但 None 是一个合法的人状态。
模板sn-p
{% for t in tasks | sort(attribute=sort_on) %}
models.py sn-p:
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(300),nullable=False)
username = db.Column(db.String(300),nullable=False,unique=True)
tasks = db.relationship('Task', backref='resource', lazy='dynamic')
def __lt__(self,other):
if other == None:
return True
return self.name.__lt__(other.name)
def __gt__(self,other):
if other == None:
return False
return self.name.__gt__(other.name)
class Task(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(300),nullable=False)
text = db.Column(db.Text)
prio = db.Column(db.Integer)
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
project_id = db.Column(db.Integer, db.ForeignKey('project.id'),nullable=False)
planned_days = db.Column(db.Integer)
done = db.Column(db.Integer)
state_id = db.Column(db.Integer, db.ForeignKey('state.id'),nullable=False)
issue = db.Column(db.String(100))
有人知道我该如何解决这个问题吗??
【问题讨论】:
-
在将事物与
None进行比较时,您应该检查身份,而不是平等。if other is None:.
标签: python-3.x flask jinja2 nonetype