Django получает записи из полиморфной модели с помощью собственного менеджера - PullRequest
0 голосов
/ 11 декабря 2018

models.py

# My Model
class MyModel(BaseModel):
    somefield1 = models.CharField(max_length=100)
    somefield1 = models.CharField(max_length=100)
    my_records = MyModelManager()

    class Meta:
        db_table = 'my_table'

# My Polymorphic Model
class PolModel(BaseModel):
    source_id = models.IntegerField()
    source_type = models.CharField()

    class Meta:
        db_table = 'pol_model'

Manager.py

# Display Actives QuerySet
class MyModelManager(models.Manager):

    def __init__(self, *args, **kwargs):
        super(MyModelManager, self).__init__(*args, **kwargs)

    def get_queryset(self):
        my_queryset = super(MyModelManager, self).get_queryset()



        return my_queryset.filter(deleted_at=None).extra(
                select={"inner join pol_model on my_table.id = 
                         pol_model.source_id"
                        "WHERE pol_model.type = 'MyExample'"}
            )

Каждый раз, когда я выбираю экземпляры MyModel, я хочу получить связанные записи с экземплярами из полиморфной модели.Я попробовал это решение, добавил дополнительное внутреннее соединение с набором запросов, но id ничего не делает

...