TypeError: Объект типа DeferredAttribute не является JSON сериализуемым

В процессе тестирования своего проекта я обнаружил странную ошибку: Object of type DeferredAttribute is not JSON serializable...

Прежде чем перейти к ошибке, я хочу рассказать, что я хотел: Шаг 1: Зарегистрированный пользователь делится своим референтным кодом с другим человеком. Шаг 2: Незарегистрированный пользователь вводит код в ссылку. Шаг 3: Браузер показывает кнопку для продолжения создания аккаунта

Это urls.py файл

from django.contrib import admin
from django.urls import path, include

from core import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home),
    path('<str:code>/', views.home),
    path('accounts/', include('accounts.urls')),
    # path('', include('accounts.urls')),
]

Это views.pyфайл

from django.shortcuts import render

from accounts.models import Refer

def home(request, *args, **kwargs):
    code = str(kwargs.get('code'))
    try:
        user = Refer.objects.get(referral_code = code)
        print(user.referral_code)
        request.session['ref_profile'] = Refer.id
        print('id', user.id)
    except:
        pass
    print(request.session.get_expiry_date())
    return render(request, 'accounts/registration.html')

Простой home.html файл

{% extends 'base.html' %}

{% block title %}
home
{% endblock title %}

{% block bodycontent %}


{% if user.is_authenticated %}
    {{user}}
{% else %}
<p>
    "Hello Everyone"
</p> 
<button class="btn btn-primary"><a href="{% url 'accounts:registration' %}">Create New User</a></button>
{% endif %}
{% endblock bodycontent %}

После возврата заявления о печати в терминале

de829fab192047
id 1
2022-01-24 05:40:09.783734+00:00
Internal Server Error: /de829fab192047/
Traceback (most recent call last):

Я получил это на веб-странице

В представлении home вы пытаетесь сохранить определение поля модели (Refer.id) вместо фактического значения извлекаемого объекта id. Просто замените Refer на user во второй строке:

    user = Refer.objects.get(referral_code = code)
    request.session['ref_profile'] = user.id
Вернуться на верх