Поле 'id' ожидало число, но получило <SimpleLazyObject: <User: username>>.
Я застрял на этой ошибке в течение некоторого времени и не могу понять, в чем проблема или что она вообще означает.
Я нашел несколько ответов, но ни один из них не решил мою проблему.
Вот краткое описание того, чем я занимаюсь:
В Javascript я вызываю эту функцию с int в качестве параметра, например:
function follow (user_id) {
// retrieves post for current selection
fetch(`/follow/${user_id}`, {
method: 'PUT',
body: JSON.stringify({
follow: true
})
})
}
Мой путь к url из url.py выглядит следующим образом:
path('follow/<int:user_id>', views.follow, name="follow")
Наконец, в файле views.py вызывается эта функция:
def follow(request, user_id):
user = User.objects.get(id = user_id)
if request.method == "PUT":
data = json.loads(request.body)
if data.get("follow") is not None:
followed = Followed(
user_id = user.id,
followed_by_id = request.user,
)
followed.save()
return HttpResponseRedirect(reverse("index"))
else:
return HttpResponseRedirect(reverse("index"))
Я попробовал несколько различных подходов, например, удалить .value, но я продолжаю получать следующую ошибку:
Поле 'id' ожидало число, но получило <SimpleLazyObject: <User: username>>
Я проверяю по пути, и ID является int на всем пути, пока он не будет передан в модель для сохранения.
Я использую модель abstractUser.
Дайте мне знать, если потребуется дополнительная информация.
С уважением,