Django сохраняет сообщения через celery

У меня есть конкретный случай использования, когда я пишу текст для записи в блоге в панели администратора. Затем я хочу сгенерировать вставки для поста. Я делаю это в admin.py

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'author', 'created_at')
    readonly_fields = ('embeddings_calculated','emebddings_updated_at') 

    def save_model(self, request, obj, form, change):
        if not obj.meta_title:
            obj.meta_title = obj.title
            obj.meta_description = obj.content[:160]
        super().save_model(request, obj, form, change)

        print("django post id",obj.id)
        post = get_object_or_404(Post, id=obj.id)
        print("django post title",post)
        if not change: # if new post not an edit post
            task_id = perform_task.delay(obj.id)
        
        result = AsyncResult(str(task_id), app=app)
        print("AsyncResultx", result)
        print("AsyncResultx_state", result.state)
       

Вот моя задача с сельдереем

@shared_task()
def perform_task(post_id):
    print("celery post id",post_id)
    post = get_object_or_404(Post, id=post_id)
    print("celery post title",post)

Я получаю эту ошибку

django.http.response.Http404: No Post matches the given query.

Хотя операторы печати, такие как django post id и django post title, показывают мне правильный результат. Но проблема заключается в celery. Я не могу увидеть celery post title в консоли.

Я также пытался

task_id = transaction.on_commit(lambda: perform_task.delay(obj.id))

Но это не сработало так же хорошо. Без сельдерея все работает хорошо, но я хочу использовать сельдерей.

Вернуться на верх