AttributeError: объект 'GenericRelatedObjectManager' не имеет атрибута

Я пытался использовать родовое отношение в проекте django. но оно выдает ошибку атрибута. Родовое отношение находится между UniqueSourcePresenter и UniqueDbSource

у меня есть экземпляр TextTable, который имеет атрибут foreignkey для UniqueSourcePresenter я попытался использовать обратное отношение как self.presenter.texttable в методе экземпляра UniqueDbSource. но это дает ошибку es ниже

File "/usr/src/app/apps/tableau/models/source.py", line 191, in create_datum
backend     |     if self.presenter.texttable is not None:
backend     | AttributeError: 'GenericRelatedObjectManager' object has no attribute 'texttable'

Мои модели выглядят следующим образом

class UniqueSourcePresenter(models.Model):
    """
    Generic Relation Manager of all types of source
    """
    # Below the mandatory fields for generic relation
    limit = models.Q(app_label = 'tableau', model = 'UniqueDbSource'.lower()) | models.Q(app_label = 'tableau', model = 'UniqueAPISource'.lower())
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, limit_choices_to = limit)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey()
    pass
class DataSource(models.Model):
    pass
class UniqueSource(DataSource):
    presenter = GenericRelation(UniqueSourcePresenter)

    class Meta:
        abstract = True
class UniqueDbSource(UniqueSource):
    """
    THIS CLASS ADDED TO CONTENTTYPE
    """
    def create_datum(self):
        """ THIS METHOD CALLED WITH SIGNAL """
        d = DatumDb()
        d.title = f"{self.title}_datum"
        if self.presenter.texttable is not None: ## THIS LINE GIVES ERROR
            d.connector = self.presenter.texttable.init_source.data.connector
            query = self.presenter.texttable.init_source.data.query
        elif self.presenter.charttable is not None:
            d.connector = self.charttable.presenter.init_source.data.connector
            query = self.charttable.presenter.init_source.data.query
        query.pk = None
        query.save()
        d.query = query
        d.save()
        self.data = d
    pass
class Table(models.Model):
    unique_source = models.OneToOneField(UniqueSourcePresenter, on_delete=models.CASCADE, null=True, blank=True, related_name="%(class)s")

    class Meta:
        abstract = True
class TextTable(Table):
    pass    

Я добавил pass слова, которые не относятся к моей проблеме.

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