0
本質上,我試圖消除向用戶顯示「列表」的id的需要。我正在使用Hashids將自動創建的ID編碼爲唯一代碼。編碼id並將其作爲唯一代碼存儲並存儲在創建行的表中
要顯示一個列表,我一直在目前這樣做:
@app.route('/listing/<uniqueHash>')
def listing(uniqueHash):
a = hashids.decode(uniqueHash)
listing = models.Listing.select().where(models.Listing.id == a).get()
uniqueHash = hashids.encode(listing.id)
return render_template("test1.html", listing = listing, uniqueHash = uniqueHash)
,這工作得很好單個上市。但是,如果我想顯示多個列表如下:
@app.route('/')
def index():
listings = models.Listing.select().limit(100)
return render_template("test.html", listings = listings)
我再不能爲每一個上市到的Jinja2模板提供的唯一ID(不明白的方式來編碼的/解碼IDS jinja模板本身...有沒有?)
我最終希望將獨特的代碼存儲在數據庫中,但是我很困惑如何創建基於列表id的hashid - m創建該列表本身並不知道id。
我目前正在創建的列表如下:
form = request.form
models.Listing.create(
title = form['title'],
description = form['description'],
price = form['price']
)
我打算以後用WTForms進行驗證使用。
我如何最好在創建列表時包含唯一代碼而不必知道id本身?
任何幫助非常感謝!
我猜你正在使用peewee爲您的模型?如果peewee支持基於類的模型,則可以在模型本身上使用函數/屬性作爲hashid。否則,你也可以將功能注入到我認爲的jinja模板中。 – syntonym