Я использую 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,
]