Ich versuche, einen Suchfilter für Kategorien zu erstellen. Das Problem ist unter anderem, wie das Python-select nicht so funktioniert, wie ich es mental gerne hätte. In SQLite möchte ich SELECT * FROM Auktionen WHERE Kategorie = 'arg'. Dies funktioniert auf der Datenbank, wenn ich sage, dass Spielzeuge, wo arg wäre. Ich habe Kategorie in einem Dropdown aber bin unsicher, wie man den Wert extrahiert. Wenn das Suchformular verwendet wird, möchte ich, dass es nur zeigt, welche Kategorie ausgewählt wurde und dann an den Preisfeldern funktioniert. Ich versuche nur, den web.py-Weg dafür herauszufinden. Heres was ich habe. Dies ist ein Schulprojekt.HTML Web.py Web framwork Einfache Kategoriesuche
Form:
FilterForm = web.form.Form(
web.form.Textbox('Search', web.form.notnull, description="Search:"),
web.form.Dropdown(name='Category', args=[]),
web.form.Textbox('minPrice', web.form.notnull, description="Price Min: "),
web.form.Textbox('maxPrice', web.form.notnull, description="Price Max: ")
web.form.Button('Apply Search Filter')
)
def POST(self):
if not FilterForm.validates():
Auctions = model.filter_auctions(FilterForm.d.Category, FilterForm.d.maxPrice, FilterForm.d.minPrice)
FilterForm.Category.args = [(a.ItemID, a.Category) for a in Auctions]
return render.index(Auctions,
AuctionForm,
Bids,
BidForm,
Logins,
LoginForm,
FilterForm,
TimeForm)
raise web.seeother('/')
Modell:
def filter_auctions(category, price_min, price_max):
return db.select('Auction', where="Category=category")
HTML:
<ul id="filtermenu">
<li><a href="#">Add Filter</a><span class="rarrow">▶</span>
<ul class="subF1">
<form action="" method="post">
$:FilterForm.render()
</form>
</ul>
</li>
</ul>