I'm trying to delete a certain row among others with this code:
@auth.requires_login()
def Daily_Calorie_Calculator():
    diary_date = None
    result_breakfast = []
    result_lunch = []
    result_dinner = []
    result_snack = []
    calories_sum = 0
    protein_sum = 0
    fat_sum = 0
    carbs_sum = 0
    
    #Deleting a specific row
    if request.vars.delete:
        #row = db(db.diary.author== auth.user.id).delete()#deletes all 
posted rows data unfortunately. I only want to delete a specific selected 
row

[image: lunch.png]
        row = db(db.diary.id==request.vars.delete).delete()# deletes all 
except under 'lunch'
        db.commit()
        redirect(URL('default', 'Daily_Calorie_Calculator', 
vars=dict(current_date=session.date)))
    
    #Working with a diary date
    from datetime import datetime

    if request.vars.current_date == None:
        diary_date = date.today()
    else:
        diary_date = request.vars.current_date
    session.date = date.today()#datetime.strptime('Jun 1 2005  1:33PM', '%b 
%d %Y %I:%M%p')

    #Getting goal values for current user
    goals = db(db.projected.created_by == auth.user_id).select().first()
    
    #Getting diary for current user
    rows = db(db.diary.created_by == auth.user_id)
    results = rows(db.diary.today == 
date.today()).select()#diary_date).select()
    for row in results:
        calories_sum += row.calories
        protein_sum += row.protein
        fat_sum += row.fat
        carbs_sum += row.carbs
        if row.meal == 'breakfast':
            result_breakfast.append(row)
        if row.meal == 'lunch':
            result_lunch.append(row)
        if row.meal == 'dinner':
            result_dinner.append(row)
        if row.meal == 'snack':
            result_snack.append(row)
    return dict(diary_date=diary_date, result_breakfast=result_breakfast, 
result_lunch=result_lunch, result_dinner=result_dinner, 
result_snack=result_snack, calories_sum=calories_sum, 
protein_sum=protein_sum, fat_sum=fat_sum, carbs_sum=carbs_sum, goals=goals)


db.define_table('diary',
                Field('author', 'reference auth_user', 
default=auth.user_id, writable=False, readable=False),
                Field('meal'),
                Field('today', 'date'),
                Field('food_item'),
                Field('calories', 'integer'),
                Field('carbs', 'integer'),
                Field('fat', 'integer'),
                Field('protein', 'integer'),
                Field('created_by', 'reference auth_user', 
default=auth.user_id, readable=False, writable=False))

When I want to delete any row under 'LUNCH', I get this error:

ValueError: Invalid objectid argument string. Requires an integer or base 16 
value

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to