Могут ли возникнуть проблемы с именованием модели Django "Model"?
Я просматриваю код нового клиента, и он назвал одну из своих моделей Django "Model". Может ли это вызвать какие-либо проблемы, поскольку все модели считаются моделями или нет?
Не проблема назвать класс Model
до тех пор, пока этот Model
не используется как суперкласс для других моделей. Действительно, можно определить:
from django.db import models
class Model(models.Model):
# …
class WrongOtherModel(Model):
# …
class CorrectOtherModel(models.Model):
# …
Здесь WrongOtherModel
будет наследоваться от класса Model
, определенного в файле, что скорее всего не то, что мы хотим сделать: только если вы хотите использовать определенный Model
как суперкласс, вы используете Model
как суперкласс. Если вы хотите определить другую модель, вы можете сделать это, наследуя от models.Model
.
С учетом этого я бы посоветовал не называть модель Model
, поскольку это повышает вероятность возникновения подобных ошибок, но, возможно, более важно: это может привести к большой путанице, если вам придется объяснять, как работает моделирование.