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()
Затем вы можете визуализировать ваше представление.
Надеюсь, это поможет