Глубина сериализатора Django не сериализует вложенные моделиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Глубина сериализатора Django не сериализует вложенные модели

Сообщение Anonymous »

Я использую Django и React, и я хочу создать несколько рабочих пространств, в которых будут внутренние экземпляры каналов.
Models.py

Код: Выделить всё

class Workspace(models.Model):

channels = models.ManyToManyField('Channel', related_name='channels', blank=True)

Serializers.py

Код: Выделить всё

class WorkspaceSerializer(serializers.ModelSerializer):
class Meta:
model = Workspace
fields = '__all__'
depth = 2
Views.py

Код: Выделить всё

@api_view(['POST'])
def getworkspace(request):

if request.method == 'POST':

workspace = Workspace.objects.filter(id=request.POST['id']).first()

serializer = WorkspaceSerializer(workspace, many=False)

return Response(serializer.data)
Затем я использую аксиомы для получения данных

Код: Выделить всё

axios.post('http://127.0.0.1:8000/getworkspace/', formData, {headers: {'Content-type':     'multipart/form-data'}}).then(res=>{

setWorkspace(res?.data)
})

console.log(workspace)

Я ожидал, что канал рабочей области будет сериализован и я смогу получить к нему доступ, но вместо этого я получил это {id, 1, каналы: [1]< /p>
Что делать, я изменил глубину даже на 10, но все равно не работает. Если я использую оболочку и сериализую ее оттуда вот так:

Код: Выделить всё

from main.models import *
from main.serializers import *
workspace = Workspace.objects.filter(id=1).first()
serializer = WorkspaceSerializer(workspace, many=False)
print(serializer.data)
Он работает отлично.
Я считаю, что проблема начинается с представления, потому что когда я печатаю print(serializer.data) оттуда каналы не сериализуются.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ted-models
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»