根据PEP8中的naming conventions,变量名应小写,必要时用下划线分隔单词以提高可读性。
因此你的方法:
ownerAccount = models.ForeignKey(ownerAccount, models.CASCADE)
错了。而且不止一个问题:
1) 属性名应写为owner_account;
2) 类名要写成OwnerAccount,也就是models.ForeignKey(OwnerAccount),更好的是把类名用引号括起来,比如models.ForeignKey('OwnerAccount'),这样更灵活;
3) 为获得更好的可读性并符合 Django 约定,您应该使用关键字参数on_delete,例如on_delete=models.CASCADE。
db_column 有其合理性,如果没有它,框架将非常不灵活,并且在许多情况下完全无法使用。
总而言之,快速正确的解决方案是使用snake_case 作为模型类(或任何类)的属性名称。
编辑:
如果您使用 Django REST Framework 创建一个 REST API 并希望为键使用不同的名称,例如:
{'ownerAccount': 'some value'}
代替:
{'owner_account': 'some_value'}
然后您可以更改字段名称的输出。这个question 有两个答案可以进一步帮助你。
我想再次强调,无论使用何种 REST API,您仍应遵守 PEP8 约定并为任何类属性和方法使用 snake_case。