У меня есть абстрактная модель, которую я хочу, чтобы все мои модели унаследовали от нее:
from django.db import models
class Audit(models.Model):
create_date = models.DateTimeField(auto_now_add=True)
last_modify_date = models.DateTimeField(auto_now=True)
create_by = models.CharField(null=True, max_length=50)
last_modify_by = models.CharField(null=True, max_length=50)
class Meta:
abstract: True
теперь, например, у меня есть две модели:
from general.AuditableModel import Audit
class Province(Audit):
name = models.CharField(max_length=30)
class Meta:
db_table = 'province_v2'
verbose_name_plural = _('provinces')
verbose_name = _('province')
class City(Audit):
province_id = models.ForeignKey('address.Province', on_delete=models.CASCADE, related_name='cities')
name = models.CharField(max_length=30)
class Meta:
db_table = 'city_v2'
verbose_name_plural = _('cities')
verbose_name = _('city')
в моей базе данных он делает таблицы вроде этого:
create table province_v2
(
audit_ptr_id integer not null
primary key
references general_audit
deferrable initially deferred,
name varchar(30) not null
);
create table city_v2
(
audit_ptr_id integer not null
primary key
references general_audit
deferrable initially deferred,
name varchar(30) not null,
province_id_id integer not null
references province_v2
deferrable initially deferred
);
create index city_v2_province_id_id_12975070
on city_v2 (province_id_id);
но я хочу, чтобы мои модели были независимыми id integer primary key
без абстрактной таблицы, теперь он сделал таблицу general_audit