'possible to split the model based on field in DRF admin.py

I have model named organization. I am using this same model model for 2 api's. I have a field code. one API do code auto generation another API takes user entry code. I want to separate the tables based on code. Autogeneration code starts SUB001,SUB002,.... like wise. user entry code thats userwish.

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',
    )

Is there any possible to split models based on code,.. Really Expecting help...



Solution 1:[1]

You can use Proxymodel inheritance. Documentation

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Utkucan B?y?kl?