IntegrityError at /api/mail-task/ NOT NULL constraint failed: django_celery_beat_periodictask.task
Получение вышеуказанной ошибки при подключении задачи celery к представлению
@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 не передается в представление таким образом, как я могу передать id для создания представления, любая помощь будет очень признательна
id можно передавать как kwargs, попробуйте так
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,
)