django - 访问作为参数传递的 django 模型属性
问题描述
我将 django 与旧数据库一起使用,我无法更改原始表列。我有类似的模型,它们的字段名称略有不同。以下模型是一个示例。
class EURegister(models.Model):
record_id = models.AutoField(primary_key=True)
reg_no = models.CharField(max_length=45, blank=True, null=True)
company_name = models.CharField(max_length=300, blank=True, null=True)
在某些型号中,reg_no
是不同的名称,例如registration_id
. 因此,我必须访问作为参数传递的模型属性。但我不能使用它,因为模型不允许使用属性,因为它们是dict
键。它给出了以下错误。
TypeError: 'EURegister' object is not subscriptable
解决方案
您可以使用getattr(…)
[python-doc]:
getattr(myeuregister, 'reg_no')
所以getattr(x, 'y')
等价于x.y
。
话虽如此,如果不同的模型(非常)相似,那么将这些模型“合并”到一个模型中可能更有意义。对相同类型的对象使用不同的表通常不是很好的设计。
推荐阅读
- python - Heroku上Todoist API调用的不同Json结果?[todoist-python]
- swift - 从本地数据库中提取详细信息
- express - 使用 bodyparser 将请求发布到服务器
- php - phpMyAdmin - 错误缺少 mysqli 扩展
- typescript - 如何从 v-for 获取和观察元素的引用?
- r - 无法从该网站提取价格变量?(代码中的一个范围内的可疑范围)
- python - 如何检测 `__init_subclass__` 是否已在子类中被覆盖?
- amazon-web-services - 使用 IAM 凭证对适用于 JavaScript 的 AWS 开发工具包进行浏览器身份验证
- php - PHP 帮助:添加产品链接 > Woo 产品循环的自定义图像翻转器
- python - 如何在 VScode 中添加 python 包?