簡體   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