Django / ошибка : Объект типа *** не является сериализуемым в JSON

Я видел, что это распространенная ошибка, и есть много записей в StackOverflow, но я не могу соединить точки в этом вопросе.

в моем файле views.py это работает

def start(request):

    whichScene = request.session.get('whichScene')
   
    myScene=Scenes.objects.get(name=whichScene)
    scene_list=myScene.next.all()

    return render(request,'scenes3d/start.html',
         {'scene_list':scene_list})

этот не работает :

def newPage (request, scene_slug):
   
    sceneToRender = Scenes.objects.get(name=scene_slug)

    return render(request,'scenes3d/new_scene.html',
        {"myScene" :sceneToRender })

Выдает ошибку :

Значение исключения: Object of type Scenes is not JSON serializable

Сцены импортируются с помощью :

from .models import Scenes

models.py

class Scenes(models.Model):
    name = models.SlugField('Scene name', max_length=60,unique=True)
    description = models.TextField(blank=True)
    fileGltf = models.FileField(null=TRUE, blank=False, upload_to="3dfiles/")
    
    record_date = models.DateTimeField('Scene date')

    manager = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        blank=True,
        null=True,
        on_delete=models.SET_NULL)
  
    prev = models.ForeignKey(
        'self', 
        related_name='next',
        blank=True,
        null=True,
        on_delete=models.SET_NULL)

    def __str__(self):
        return self.name

Поскольку queryset sceneToRender = Scenes.objects.get(name=scene_slug) не является единым объектом (который был бы сериализуемым JSON), вам нужно получить доступ к values из, используя вместо этого следующее:

sceneToRender = Scenes.objects.get(name=scene_slug).values()

Затем вы можете визуализировать ваше представление.

Надеюсь, это поможет

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