Fix divide by zero error.

Python returning IllegalOperation, not ZeroDivisionError.

Change-Id: I967e1a1e100491a580d5ef8bd393d73415c0824a
Pass pk, not object to tasks.

Passing the object failed, probably when we implemented FieldTracker,
which overrides the save() method. Python gets confused and tries to
pickle the save() method which doesn't work.

In any case, we shouldn't be passing the object to the tasks, as the
object may get changed before the task gets it.

Change-Id: I9ed8c25834493c6fb681aa6ead5f109069ca8602