0

Getting the above error while connecting a celery task with view

@shared_task
def send_mail_func(mail_task_id):
    mail_task = MailTask.objects.get(id=mail_task_id)
    subject = mail_task.subject
    message = mail_task.message
    from_email = mail_task.from_email
    recipient = mail_task.recipient
    send_mail(subject, message, from_email, [recipient], fail_silently=False)

class MailTaskSerializer(serializers.ModelSerializer):
    class Meta:
        model = MailTask
        fields = '__all__'

class MailTaskCreateAPIView(CreateAPIView):
    serializer_class = MailTaskSerializer

    def perform_create(self, serializer):
        serializer.save()
        time_to_send = serializer.data['time_to_send']
        clocked_schedule, created = ClockedSchedule.objects.get_or_create(
            clocked_time=time_to_send
        )
        periodic_task = PeriodicTask.objects.create(
            clocked=clocked_schedule,
            name=create_random_unique_number(),
            task=send_mail_func(serializer.data['id']),
            one_off=True,
        )

Id is not passing to the view this way, how I can pass the id to create view, any help is much appreciated

1 Answer 1

1

id can be passed as kwargs, try this way

 periodic_task = PeriodicTask.objects.create(
            clocked=clocked_schedule,
            name=create_random_unique_number(),
            task='app_name.tasks.taskname',
            kwargs=json.dumps({'mail_task_id': serializer.data['id']}),
            one_off=True,
        )
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.