GenericForeignKey с BaseDatatableView

У меня возникли проблемы с использованием общего внешнего ключа в BaseDatatableView. Я решил использовать общий внешний ключ в Django. В ORM я могу сделать то, что мне нужно, я могу перейти через content_object к экземпляру, который связан с этим полем, и легко прочитать значения поля этого экземпляра. Проблема возникает, когда я создаю таблицы, используя BaseDatatableView.

[models.py]

class Warehouse(models.Model):
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')
    quantity = models.IntegerField()

    def __str__(self):
        return f'{self.content_object.name} - {self.quantity}'
    
    class Meta:
        indexes = [
            models.Index(fields=['content_type', 'object_id'])
        ]

    
class Product1(models.Model):
    name = models.CharField(max_length=50)
    tag = models.SlugField()
    note = models.CharField(max_length=20)
    
    def __str__(self):
        return self.tag

class Product2(models.Model):
    name = models.CharField(max_length=50)
    tag = models.SlugField()
    note = models.CharField(max_length=20)

    def __str__(self):
        return self.tag

(Архитектура модели является образцовой и проверяет только взаимоотношения)

[table.py]

class Product1WarehouseDataTable(BaseDatatableView):
    model = Warehouse
    columns = ['content_object__name', 'content_object__tag', 'content_object__note', 'quantity']

    def get_initial_queryset(self):
        ct = ContentType.objects.get_for_model(Product1)
        qs = self.model.objects.filter(content_type=ct)
        return qs

BaseDatatableView выдает ошибку:

Поле 'content_object' не генерирует автоматического обратного отношения и поэтому не может использоваться для обратного запроса. Если это GenericForeignKey, рассмотрите возможность добавления GenericRelation.

Я хочу отобразить данные из Product1 в таблице из Warehouse модели.

Я уже использовал BaseDatatableView, но это первый раз, когда я использую общие ключи.

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