django-celery
django-celery copied to clipboard
Store django-user into TaskMeta model
Hi, i'm trying to store user information into TaskMeta model. I need to keep information about who's launching a task. I extended the TaskMeta model with the user foreignkey field
class ExtendedTask(models.Model):
task = models.OneToOneField(TaskMeta, null=True)
user = models.ForeignKey(User, null=True)
class Meta:
verbose_name = 'Task extra info'
verbose_name_plural = 'Task extra info'
Now I overwrite the database backend:
class CustomDatabaseBackend(DatabaseBackend):
TaskModel = TaskMeta
TaskSetModel = TaskSetMeta
user1 = get_current_user()
def store_user_task(self, user_po=get_current_user(), task_p=None):
ext_task = ExtendedTask(user=user_po, task=task_p)
ext_task.save()
def _store_result(self, task_id, result, status,
traceback=None, request=None):
"""Store return value and status of an executed task."""
self.TaskModel._default_manager.store_result(
task_id, result, status,
traceback=traceback, children=self.current_task_children(request),
)
self.store_user_task(task_p=TaskMeta.objects.get(task_id=task_id))
return result
creating the get_current_user() method to retrieve from the session the authenticated user, but it's always none if i pass it to the _save_results()
Any ideas?
best
ernesto