ошибка в админке django, встроенной в djongo db-коннектор - PullRequest
1 голос
/ 11 ноября 2019

Я использую ArrayReferenceField вместо ManyToManyField, потому что я использую djongo в качестве коннектора для базы данных. Я хочу, чтобы это поле отображалось как встроенная модель на сайте администратора django. Но я получаю ошибку AttributeError: 'ArrayReferenceDescriptor' object has no attribute 'through'. Я знаю, что ArrayReferenceField не создает промежуточную модель в базе данных. Так как я могу успешно отобразить это поле как встроенное в админке django?

Мои модели:

class Synonym(models.Model):
    base_name = models.CharField(
        blank=False,
        max_length=5000,
        verbose_name='Base Entity Value',
        help_text='The entity value for which you want to provide the synonym.',
    )

    extra_name = models.CharField(
        blank=False,
        max_length=5000,
        verbose_name='A synonym',
        help_text='Synonyms of the base entity value.',
    )

    class Meta:
        # abstract = True
        ordering = ['base_name']

    def __str__(self):
        return self.base_name

class qa(DirtyFieldsMixin, models.Model):
    synonyms = models.ArrayReferenceField(
        blank=True,
        null=True,
        to=Synonym,
        on_delete=models.SET_NULL,
        help_text='Synonyms of the entities of the question.',
    )

В admin.py:

class SynonymInline(admin.TabularInline):
    model = qa.synonyms.through


class SynonymAdmin(admin.ModelAdmin):
    inlines = [
        SynonymInline,
    ]


@admin.register(qa)
class qaAdmin(admin.ModelAdmin):
    # form = qaModelForm

    list_display = ('question', 'answer', 'module', 'intent', 'display_entities_name')

    list_filter = ('module', 'intent', 'username',)

    inlines = [
        SynonymInline,
    ]
...