gpt4 book ai didi

python - 从 dict 返回信息

转载 作者:行者123 更新时间:2023-12-01 05:21:15 24 4
gpt4 key购买 nike

我想用最少的代码保存对象。

在 View 中(仅需要特定属性):

my_obj = Entry.create(name=my.name, ...)

在模型中:

@classmethod
def create(cls, **kwargs):
return cls(name=kwargs['name'], ...)

有没有办法缩短这段代码?提供您的示例。

最佳答案

您可以通过以下方式使其更加通用:

@classmethod
def create(cls, **kwargs):
return cls(**{k: kwargs[k] for k in kwargs.viewkeys() & cls._meta.get_all_field_names()})

它将关键字参数过滤为仅包含字段的参数。

或者只是相信没有额外的关键字参数被传入并使用:

@classmethod
def create(cls, **kwargs):
return cls(**kwargs)

如果您还想保存新创建的对象(my_obj.save()),您可以使用 model.objects.create() method :

@classmethod
def create(cls, **kwargs):
return cls.objects.create(**{k: kwargs[k] for k in kwargs.viewkeys() & cls._meta.get_all_field_names()})

或未过滤:

@classmethod
def create(cls, **kwargs):
return cls.objects.create(**kwargs)

关于python - 从 dict 返回信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22298695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com