小编slq*_*lqq的帖子

来自嵌套数据类的字典

我想知道如何将嵌套数据类转换为 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)

python python-dataclasses

6
推荐指数
1
解决办法
4398
查看次数

@action 的 Django Rest Framework url_pattern

我需要在 @action name 方法的最后一个 / 之后传递实例 ID,我真的不知道如何...

我有一个 UserViewSet,访问列表的 url 是:/users/,然后我有一个名为favorite_posts 的操作,它是detail=False因为我正在按当前登录的用户进行过滤,并且该操作是指用户帖子,我希望能够传递 post_id 像/users/favorite_posts/post_id/,因为在这种情况下,它比/users/1/favorite_posts/对我更友好,我可以获得设置detail=True

有没有办法做到这一点?

python django django-rest-framework

4
推荐指数
2
解决办法
6822
查看次数