Здравствуйте, я новичок в классах DRF
Я пытаюсь получить данные из базы данных в JSON в API, но данные находятся во многих полях во многих таблицах, связанных внешними ключами ,
Я хочу передать идентификатор из данных, и API получит все связанные данные с этим полем.
Как и в случае присоединения SQL
Я делаю это создание сериализаторов и просмотров из моих моделей.
Одна из моих моделей:
class ModelPer(ModelMMixin, SQLMixin):
'''Model
'''
descricao = models.CharField(
verbose_name = _(u'Descrição'),
max_length = 250,
unique = False
)
ativo = models.BooleanField(
verbose_name= _(u'Ativo'),
default = False
)
slug = models.SlugField(
max_length=150,
unique=True,
default=uuid.uuid4()
)
Мои сериализаторы:
class PerSerializer(serializers.ModelSerializer):
class Meta:
model = ModelPer
fields = ['id', 'descricao']
My Вид:
class PerView(APIView):
"""
View that return all forms in app
"""
def get(self, request):
queryset = ModelPer.objects.all()
serializer = PerSerializer(queryset)
print(serializer.data)
return Response(serializer.data)
Но я получаю пустое Json, поэтому, когда я пытаюсь отладить в Django оболочке, я получаю это:
>>> from per.models import ModelPer
>>> from api_form.serializers import PerSerializer
>>> queryset = ModelPer.objects.all()
>>> serializer = PerSerializer(queryset)
>>> serialzaer.data
ОШИБКА
Поле сериализатора может иметь неправильное имя и не соответствовать ни одному атрибуту или ключу в экземпляре QuerySet`. Исходный текст исключения был: объект 'QuerySet' не имеет атрибута 'descricao'.
И когда я пытаюсь в терминале проверить сериализатор, как:
>>> seriializer
Я получаю:
PerspectivaSerializer(<QuerySet [<ModelPer: Pespectiva 1>, <ModelPer: Pespectiva 2>, <ModelPer: Pespectiva 3>]>):
id = IntegerField(label='ID', read_only=True)
data_cadastro = DateTimeField(label='Data de Cadastro', required=False)
excluido = NullBooleanField(label='Excluído?', required=False)
data_exclusao = DateTimeField(allow_null=True, label='Data de Exclusão', required=False)
descricao = CharField(label='Descrição', max_length=250)
ativo = BooleanField(required=False)
slug = SlugField(allow_unicode=False, max_length=150, required=False, validators=[<UniqueValidator(queryset=ModelPer.objects.all())>])
usuario_cadastro = PrimaryKeyRelatedField(allow_null=True, label='Usuário que realizou o Cadastro', queryset=User.objects.all(), required=False)
usuario_exclusao = PrimaryKeyRelatedField(allow_null=True, label='Usuário que realizou a exclusão', queryset=User.objects.all(), required=False)
Когда я проверяю набор запросов, все в порядке!
Кто-нибудь может мне помочь? Где его моя ошибка! Спасибо