Могут ли возникнуть проблемы с именованием модели 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, поскольку это повышает вероятность возникновения подобных ошибок, но, возможно, более важно: это может привести к большой путанице, если вам придется объяснять, как работает моделирование.

Вернуться на верх