timedelta syntax is timedelta(days=1)

On 07/25/2012 11:13 AM, jw wrote:
Hi,

my question is about the following query. I'm planning to program an
e-learning software. For this I use three tables to select the cards to
learn for today.
Table "cards" contains the question, "userCard" contains the progress
for the special student (lastTimeLearned as a multiplicator for the
calculating of the next time to learn), "subject" contains the name of
the subject and groupCard contains the answer for the special group.

groupCards = db((db.groupCards.card_id == db.card.id) \
         & (db.groupCards.studyGroup_id == auth.user.studyGroup_id) \
         & (session.chosenSubject_id == db.card.subject_id)
         & (db.userCard.stage <= 5) \
         & (db.userCard.lastTimeLearned < (datetime.date.today() -
datetime.timedelta(days=(1))))
         ).select(db.userCard.id,db.card.id,
left=db.userCard.on((db.userCard.card_id == db.card.id)))

I would like to select in this query all the cards for a specific
student in a choosen subject, with the answers of his learnGroup
(groupCard) and only the cards he doesn't learned today. I try to use
the left outer join, because there are cards, the user learns them for
the first time.
I tried many hours to find a correct query but now i feel desperate.

The other thing is the '1' in the timedelta. I get the exception, that
it is not allowed to use a field in timedelta.

Can somebody please help me?
P.S.: Sory for my english!

--




--



Reply via email to