Возможность разделения модели на основе поля в DRF admin.py

У меня есть модель под названием организация. Я использую эту же модель для 2 api. У меня есть поле код. Один API делает автоматическую генерацию кода, другой API принимает код, введенный пользователем. Я хочу разделить таблицы на основе кода. Код автогенерации начинается с SUB001, SUB002, ..... Код ввода пользователя - это пожелание пользователя.

models.py
class Organization(models.Model):
    code = models.CharField(max_length=255, null=False, unique=True)
    name = models.CharField(max_length=255, null=False)
    organization_type = models.CharField(max_length=255, choices=TYPES, null=False, default=COMPANY)
    internal_organization = models.BooleanField(null=False, default=True)
    location = models.ForeignKey(Location, on_delete=models.RESTRICT)
    mol_number = models.CharField(max_length=255, null=True, blank=True)
    corporate_id = models.CharField(max_length=255, null=True, blank=True)
    corporate_name = models.CharField(max_length=255, null=True, blank=True)
    routing_code = models.CharField(max_length=255, null=True, blank=True)
    iban = models.CharField(max_length=255, null=True, blank=True)
    description = models.TextField(null=True, blank=True)
    total_of_visas = models.IntegerField(null=False, default=0)
    base_currency = models.ForeignKey(Currency, on_delete=models.RESTRICT, null=True, blank=True, default=None)
    logo_filename = models.ImageField(_("Image"), upload_to=upload_to, null=True, blank=True)

    def __str__(self):
        return self.name

admin.py

@admin.register(Organization)
class OrganizationAdmin(admin.ModelAdmin):
    list_display = (
        'id',
        'code',
        'name',
        'location',
        'organization_type',
        'internal_organization',
        'mol_number',
        'corporate_id',
        'corporate_name',
        'routing_code',
        'iban',
        'description',
        'total_of_visas',
        'base_currency',
        'logo_filename',
    )

Есть ли возможность разделить модели на основе кода,... Очень жду помощи...

Вы можете использовать Proxyнаследование модели. Документация

class AutoGenerationManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(code__istartswith="SUB")

class AutoGeneration(Organization):
    objects = AutoGenerationManager()
    class Meta:
        proxy = True


class UserGenerationManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().exclude(code__istartswith="SUB")

class UserGeneration(Organization):
    objects = UserGenerationManager()
    class Meta:
        proxy = True

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