在 Django 模型中处理额外的 kwargs
Dealing with additional kwargs in Django models
我想在 Django 模型中将一些带有 kwargs
的参数传递给 get_or_create()
函数,但是如果 kwargs
中有一些模型中不存在的额外键值,一个会出现错误。有什么方法可以传递字典并且函数本身处理额外的键吗?
我认为您可以在 Django 源代码中找到更好的解决方案,但是,您也可以创建一个函数来从数据中删除额外的键。
def remove_extra_keys(model, data: dict) -> dict:
for filed_name in data: # <- possibly for better reading u can use here data.keys()
if not getattr(model, filed_name, None):
data.pop(filed_name)
return data
p = MyModel.objects.get_or_create(**remove_extra_keys(model=MyModel, data=my_data))
我想在 Django 模型中将一些带有 kwargs
的参数传递给 get_or_create()
函数,但是如果 kwargs
中有一些模型中不存在的额外键值,一个会出现错误。有什么方法可以传递字典并且函数本身处理额外的键吗?
我认为您可以在 Django 源代码中找到更好的解决方案,但是,您也可以创建一个函数来从数据中删除额外的键。
def remove_extra_keys(model, data: dict) -> dict:
for filed_name in data: # <- possibly for better reading u can use here data.keys()
if not getattr(model, filed_name, None):
data.pop(filed_name)
return data
p = MyModel.objects.get_or_create(**remove_extra_keys(model=MyModel, data=my_data))