命名 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
会继承文件中定义的Model
class,这很可能不是我们想要做的: 只有当你想使用定义的 Model
作为 supercass 时,你才使用 Model
作为 superclass。如果要定义另一个模型,可以通过继承 models.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
会继承文件中定义的Model
class,这很可能不是我们想要做的: 只有当你想使用定义的 Model
作为 supercass 时,你才使用 Model
作为 superclass。如果要定义另一个模型,可以通过继承 models.Model
.
话虽如此,我建议 不要 将模型命名为 Model
,因为这样更容易发生此类错误,但也许更重要的是:如果您必须解释建模的工作原理,可能会导致很多混乱。