Python hug - не может использовать Nested в MarshmallowSchema

Использование HUG для создания Rest API, ВЕРСИЯ 2.3.0 ( https://github.com/timothycrosley/hug)

Я не могу использовать вложенную способность Зефира в HUG. Вот код

import config
from tinydb import TinyDB, Query
import hug
import hashlib
import logging
import os
from marshmallow import Schema, fields, validates, ValidationError

class MultilanguageSchema(Schema):
    language = fields.Str()
    value = fields.Str()

class TitleSchema(Schema):
    titles = fields.Nested(MultilanguageSchema, many = True)

class DescriptionSchema(Schema):
    descriptions = fields.Nested(MultilanguageSchema, many = True)

@hug.post('/ads', requires=api_key_authentication, versions=1)
def post_ad(sites_id: hug.types.number,
        name: hug.types.text,
        age: hug.types.in_range(18, 99),
        telephone: hug.types.number,

        titles: hug.types.MarshmallowSchema(TitleSchema()),
        descriptions: hug.types.MarshmallowSchema(DescriptionSchema()),

        authed_user: hug.directives.user):

    pdb.set_trace()

Когда я пытаюсь выполнить запрос POST с данными этого примера, я получаю пустые данные о вложенных полях.

sites_id: 1
name: Test Name
age: 34
telephone: 999999999
titles: {"language":"en","value":"Some Title"}
descriptions: {"language":"en","value":"Some Description"} 

Используя pdb:

titles: {}
descriptions: {}

Любой мог использовать способность "Вложенный зефир" в HUG. Если да, то как это сделать?

1 ответ

Что произойдет, если вы попытаетесь определить свою конечную точку таким образом и получить доступ к данным на основе новой подписи?

@hug.post('/ads')
def post_ad(*args, **kwargs):
    print('Args: %s' % args)
    print('Kwargs: %s' % kwargs)
    try:
        sites_id = kwargs.get('sites_id', None)
    except Exception as e:
        print(e)

Этот вопрос, поднятый здесь, может представлять интерес.

Другие вопросы по тегам