访问expando模型属性

2024-04-29 11:20:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个工资模型,可以处理多个公司的员工的工资,或者更确切地说,同一个公司的多个工作地点。因此,当我添加薪资组成部分时,我选择了要展开的模型,因为每个公司根据其薪酬结构可能都有特定于国家的组成部分。这些薪资组件是在工资单运行时计算的。 问题是,我可能需要在某个地方显示它,可能在员工档案中。我该怎么做?例如

A in company ABC India will have

basic : 6600

DA : 1250

在ABC英国公司

HRA : 1500

Special Allowance : 3000

由于这些道具是根据各自的公司在运行时生成的,我如何访问它们?我不会写字基本工资在英国的一个雇员。我希望你能理解我的问题。在


Tags: in模型地方员工组件公司档案国家
1条回答
网友
1楼 · 发布于 2024-04-29 11:20:46

正如Tim建议的那样,您可以通过执行以下操作来测试属性是否存在:

basic_salary = getattr(salary, 'basic', False)

这样,如果salary具有此属性,False则基本工资将为basic的值,否则为False。在

或者,可以通过以下方式获取实例的属性列表:

^{pr2}$

虽然您访问的是类的私有部分,但是您仍然可以访问它(请注意,要密切关注可能会破坏这种访问的类的更改)。使用此列表,您可以通过以下方法测试basic是否在salary中:

has_basic = 'basic' in attributes

相关问题 更多 >