我正在使用带有 MySQL 后端的 Django 1.8。我需要从数据库中的几个表中获取两列并将它们连接起来,然后将排序后的结果放在网页上。到目前为止我有这个:
视图.py
def herps(request):
#performs queries to get distinct species from the database
trQuery = queryBuilder(HetrRec, '_hetr')
opQuery = queryBuilder(HeopRec, '_heop')
valList = opQuery + trQuery
query = sorted(set(valList))
return render_to_response('herps.html', {'queries': query,})
对数据库执行查询的函数如下所示:
def queryBuilder(table, column_str):
genus = 'genus' + column_str
species = 'species' + column_str
filterSp = {species: 'sp.'}
query = table.objects.order_by(species, genus).values(genus, species).distinct().exclude(**filterSp)
valueList = []
for q in query:
species = ' '.join(q.values())
valueList.append(species)
return(valueList)
因此,输出以 Genus Species 的形式出现在几个表组合中。在一张表中,它出现了 Species Genus。
我已经通过数据删除了任何可能影响它的字符(前导/尾随空格、不完整的对等),但没有任何乐趣。