Python Forum

Full Version: filtering by category flask+mongodb
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi coders! I'm dividing every page by filtering by the correct category in my recipe blog, but I don't know why I cannot manage. For example, I have vegetarian.html, It works when I simply don't look for a specific category in MongoDB, but when I do I get an error, I write here the code:

This is main.py

@app.route('/vegetarian')
def vegetarian():
    query={{"category_name": "Vegetarian"}}
    return render_template("vegetarian.html", recipes=mongo.db.recipes.find(query))
The error is this:

File "/Users/RBianco/Desktop/Course restart/cookbook-milestone/main.py", line 35, in vegetarian
query={{"category_name": "Vegetarian"}}
TypeError: unhashable type: 'dict'


For sure I wrote it wrong.

Any help please?

Thank you guys!!!
Did you mean to put your dict inside a set on line 3?
(Jul-18-2020, 05:18 PM)ndc85430 Wrote: [ -> ]Did you mean to put your dict inside a set on line 3?

Thanks man, I just wrote query={{"category_name": "Vegetarian"}} that actually had to be query={"category_name": "Vegetarian"}

I just got confused with the {{}}

:)
Also, FWIW, the error happens because dictionaries are mutable. If you were to change a mutable item, its hash value would change meaning that it could be in the wrong bucket in the underlying hash table. That would mean looking up the item would be broken. Dictionary keys have to be immutable things for the same reason.