命名 Django 模型 "Model" 会不会有任何问题?

Could there be any issues naming a Django model "Model"?

我正在查看一个新客户的代码,他们将其中一个 Django 模型命名为“模型”。这是否会导致任何问题,因为所有模型都被视为模型?

命名 class Model 不是问题,只要 Model 用作超级 class 对于其他型号。实际上,可以定义一个:

from django.db import models

class <strong>Model</strong>(models.Model):
    # …

class WrongOtherModel(<strong>Model</strong>):
    # …

class CorrectOtherModel(models.Model):
    # …

这里的WrongOtherModel会继承文件中定义的Modelclass,这很可能不是我们想要做的: 只有当你想使用定义的 Model 作为 supercass 时,你才使用 Model 作为 superclass。如果要定义另一个模型,可以通过继承 models.Model.

来实现

话虽如此,我建议 不要 将模型命名为 Model,因为这样更容易发生此类错误,但也许更重要的是:如果您必须解释建模的工作原理,可能会导致很多混乱。