繁体   English   中英

比较带有Peewee的CharField字符串?

[英]Compare string with CharField with peewee?

我正在尝试获取结果列表,其中给定的字符串address位于models.Listing.address 目前,我的代码是:

@app.route('/search/<address>')
def search(address):
    results = models.Listing.select().where(address << models.Listing.address)

    return render_template('search.html', results=results)

例如,我可能经过39 Main Road ,希望它选择给定列表的地址字段中39 Main Road的记录(完整地址为39 Main Road RICHMOND, NSW, Australia

但是,我当前的代码错误为: TypeError: unsupported operand type(s) for <<: 'str' and 'CharField'

我已经尝试过将models.Listing.address转换为str,但是只会返回unsupported operand type(s) for <<: 'str' and 'str'

我会address in models.Listing.address使用address in models.Listing.address但是根据文档这个答案 ,使用<<操作符是必要的。

此外,我尝试使用address.in_(models.Listing.address)哪个字符串不具有...的属性

是因为我没有将CharField与CharField进行比较? 如果是这样,我如何比较一个字符串和一个CharField? 我尝试将CharField更改为字符串,但无法与peewee配合使用in因为正如@coleifer在此答案的评论中所说:

Python始终将x in yx in y的返回值强制为布尔值,因此必须使用<<运算符。

提前致谢!

嗯...我很快就会发现:

x << y用于检查记录x是否在记录y的列表或查询中

而我试图实现的功能是通过以下方式完成的:

.where(models.Listing.address.contains(address))

所以你去了,未来的我将不可避免地再次这样做;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM