Кроме того, если вы хотите изменить (или удалить) префикс для всех таблиц, вы можете предоставить свой собственный метакласс.Это полезно, если у вас есть несколько случаев, например Businesses
, где вы просто хотите, чтобы имя класса и таблицы были одинаковыми.
Например, следующий код ставит перед всеми таблицами префикс FOO_
вместо appname_
:
class MyModelBase( ModelBase ):
def __new__( cls, name, bases, attrs, **kwargs ):
if name != "MyModel":
class MetaB:
db_table = "FOO_" + name
attrs["Meta"] = MetaB
r = super().__new__( cls, name, bases, attrs, **kwargs )
return r
class MyModel( Model, metaclass = MyModelBase ):
class Meta:
abstract = True
class Businesses( MyModel ):
...