Вы получаете эти ошибки, потому что вы неправильно обрабатываете вещи в своих взглядах. Прежде всего, при создании объекта Task
вы сохраняете его без установки значения usertask
, поэтому устанавливается значение null.
С другой стороны, при попытке получить только что созданный объект здесь Task.objects.get(pk=user_membership)
вы делаете это неправильно, потому что вы передаете экземпляр User
параметру pk. Это должно быть целое число.
Кроме того, для того, что я вижу, вы пытаетесь достичь 1015 * здесь: expence_object = model_to_dict(Task.objects.get(pk=user_membership))
- получить только что созданную модель, но в вашем случае это совершенно не нужно. а также ты делаешь это неправильно. Пожалуйста, попробуйте следующий код:
form = AddTask(request.POST)
if form.is_valid():
# form.cleaned_data <-- This line is unnecessary here too
obj = form.save(commit=False) # Prevent saving before assigning usertask
obj.usertask = request.user
obj.save()
expence_object = model_to_dict(obj)
return JsonResponse({'error': False, 'data': expence_object})
Когда вы сохраняете форму, основанную на модели, она возвращает сохраненный экземпляр модели. Поэтому нет необходимости сохранять его в базе данных, а затем делать новый запрос, чтобы вернуть его. Просто назначьте его переменной (в данном случае obj
) и выполните все остальные необходимые действия.