Обновление поля datetime в django с помощью ajax-вызова

У меня есть модель Profile, назначенная пользователю, которая содержит поле :

    consent = models.DateTimeField(default=timezone.now, blank=True, null=True)

Я создал переключатель во фронтенде, в котором пользователь дает согласие на отслеживание данных или нет, и вызов ajax для обработки ответа. Все вроде бы работает нормально, печатает правильные результаты, но время даты не сохраняется в базе данных. Есть идеи, что не так?

def user_consent(request):

    edited_user = request.user # if no user is specified, then we take the signed in user

    if request.is_ajax and request.method == "GET" : 
        value = request.GET['toggle']
        print(value)
        if value == 'true':
            edited_user.profile.consent = timezone.now()
            edited_user.save()
            print(edited_user.profile.consent)
            return JsonResponse({"ok": "no errors"}, status=200)
            
        else:
            edited_user.profile.consent = None
            edited_user.save()
            print(edited_user.profile.consent)
            return JsonResponse({"ok": "no errors"}, status=200)
            
                
    return JsonResponse({"error": "there was an error"}, status=400)

Выводы, которые я получаю в консоли :

[01/Jul/2022 14:53:50] "GET /users/consent?toggle=false HTTP/1.1" 200 19
true
2022-07-01 14:53:51.911242+00:00
[01/Jul/2022 14:53:51] "GET /users/consent?toggle=true HTTP/1.1" 200 19
false
None
[01/Jul/2022 14:53:53] "GET /users/consent?toggle=false HTTP/1.1" 200 19
true
2022-07-01 14:53:55.522132+00:00
[01/Jul/2022 14:53:55] "GET /users/consent?toggle=true HTTP/1.1" 200 19
false
None
[01/Jul/2022 14:55:08] "GET /users/consent?toggle=false HTTP/1.1" 200 19

Не понимаю, вы задаете значение по умолчанию в модели, но внутри представления функции вы устанавливаете это поле как None (else case). какое значение вы ожидаете?

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