I have finally found a way to insert, update and delete ingredients from
the recipe application.
It is probably not the best way but it works.
First since I had a button in the form to add an ingredient, I used a
button to delete a selected ingredient.
As for the Update and insert into an existing recipe placed the entire
recipe into a dictionary of dictionaries
Data = {'Recipe': {'recipeName': 'Test', 'recipeDescription': '1. Mix
everything\n2. Cook\n3. Turn off Stove', 'recipeCategory': 2, 'recipeKey':
33}, 'Ingredients': {'update': [['133', 'Item1', 33, '1'], ['134', 'Item2',
33, '6'], ['136', 'Item4', 33, '4']], 'insert': [[None, 'Item5', 33, '5']]}}
The 'Recipe' key updates the Recipe table and the 'Ingredients' updates (if
necessary inserts) ingredient data into the Ingredient Table
The code:
def updateRecipe(data):
session = connectToDatabase()
primeKey = data['Recipe']['recipeKey']
# Update the recipe table
recipeResult =
session.query(Recipe).filter(Recipe.recipeKey==primeKey).one()
recipeResult.recipeName = data['Recipe']['recipeName']
recipeResult.recipeCategory = data['Recipe']['recipeCategory']
recipeResult.recipeDescription = data['Recipe']['recipeDescription']
# update the ingredients table
IngredData = data.pop('Ingredients')
ingredientResult =
session.query(Ingredients).filter(Ingredients.ingredientRecipeKey==primeKey)
for Ingred in ingredientResult:
for item in IngredData['update']:
if int(Ingred.ingredientKey) == int(item[0]):
Ingred.ingredientDescription = item[1]
#Ingred.ingredientRecipeKey = item[2]
Ingred.ingredientQuantity = item[3]
session.add(Ingred)
# insert New Ingredients:
key = 'insert'
if key in IngredData.keys():
for item in IngredData['insert']:
recipeResult.tblIngredients.append(Ingredients(ingredientDescription=item[1],
ingredientQuantity=item[3]))
session.add(recipeResult)
session.commit()
session.close()
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sqlalchemy/d5d302f4-d03b-45b0-b7fb-1c9b40cb933dn%40googlegroups.com.