使用sqlalchemy查询自引用的表,如下所示 -
district = session.query(
District._id, District.name, District.level,
District.parent, District.ordering, District.description,
functions.ST_AsGeoJSON(District.area).label('area'),....
,.... and some columns
).filter(
st_contains(
'district.area',
st_point(lat, lng)
)
).filter(
District.level == float(level)
).first()
查询正确执行,但对于Column.parent列,返回 False 而不是父ID。
以下是地区的模型类
class District(Base):
__tablename__ = 'district'
_id = Column('_id', Text, primary_key=True)
_database_id = Column('_database_id', Text, primary_key=True)
_owner_id = Column('_owner_id', Text, primary_key=True)
_created_by = Column('_created_by', Text)
_updated_by = Column('_updated_by', Text)
_access = Column('_access', JSON)
_created_at = Column('_created_at', DateTime)
_updated_at = Column('_updated_at', DateTime)
name = Column(Text, nullable=False)
level = Column(DOUBLE_PRECISION, nullable=False)
parent_id = Column(
'parent',
Text,
ForeignKey('district._id'),
)
parent = relationship(
'District',
foreign_keys='District.parent_id',
)
如果我打印查询我得到这样的东西 -
SELECT district._id AS district__id, district.name AS district_name,
district.level AS district_level, district._id = district.parent AS parent,
district.ordering AS district_ordering, district.description AS
district_description, ST_AsGeoJSON(district.area) AS area...,......
FROM district
WHERE ST_contains(area, ST_SetSRID(ST_Point(22.2883291,
114.14048449999996),4326)) AND district.level = %(level_1)s
LIMIT %(param_1)s
对于父母领域,它给出了一些奇怪的东西 - > district._id = district.parent AS parent
有人能突出我在这里做错了什么吗?
答案 0 :(得分:0)
在<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="row">
<div class="col-6">
<h2>Add Show</h2>
<form>
<div class="form-group">
<label for="title">Show Title</label>
<input type="text" class="form-control" id="title" placeholder="enter title" />
</div>
<div class="form-group">
<label for="rating">Show rating </label>
<input type="number" min="0" max="10" value="5" class="form-control" id="rating" />
</div>
<button class="btn btn-outline-primary">Add show</button>
</form>
</div>
<div class="col-6">
<h2> Show List</h2>
<ul>
</ul>
<button class="btn btn-outline-secondary"> Delete List</button>
</div>
</div>
</div>
班级定义District
中,它不是parent
,而是Column
。因此,要获得父级的relationship
,您必须使用:
_id