我想知道如何将嵌套数据类转换为 dict 除了None字段。我知道asdict()方法存在,但我正在尝试编写类似于asdict()在dict创建过程中忽略空值的方法。
例如:
@dataclass
class Nested:
name: str = None
contacts: list = field(default_factory = list)
@dataclass
class Main:
nested: Nested = field(default_factory = Nested)
surname: str = None
Run Code Online (Sandbox Code Playgroud)
预期结果是:
example = Main()
example_d = asdict(example)
print(example_d)
{"nested": {"contacts": []}}
Run Code Online (Sandbox Code Playgroud)
我目前拥有的:
example = Main()
example_d = asdict(example)
print(example_d)
{"nested": {"name": None, "contacts": []}, surname: None}
Run Code Online (Sandbox Code Playgroud)
我知道这asdict()会忽略没有值的字段并将默认设置为默认值,但我需要= None在数据类初始化期间。
我最终覆盖了asdict()和_asdict_inner()方法:
def asdict(obj, *, dict_factory=dict):
if …Run Code Online (Sandbox Code Playgroud) 我需要在 @action name 方法的最后一个 / 之后传递实例 ID,我真的不知道如何...
我有一个 UserViewSet,访问列表的 url 是:/users/,然后我有一个名为favorite_posts 的操作,它是detail=False因为我正在按当前登录的用户进行过滤,并且该操作是指用户帖子,我希望能够传递 post_id 像/users/favorite_posts/post_id/,因为在这种情况下,它比/users/1/favorite_posts/对我更友好,我可以获得设置detail=True。
有没有办法做到这一点?