Импорт данных в БД Django

Рейтинг: 0Ответов: 1Опубликовано: 27.06.2023

У меня есть две модели Вопрос (Question) и ответы к вопросу (Answer). В админке можно ввести вопрос и сразу ответы к нему. Подключила импорт в админке, но он для одной модели Вопрос, то есть добавить можно вопросы, без ответа. Подскажите как добавить в данный импорт еще модель Ответы?

model.py

class Question(models.Model):
text = models.CharField(max_length=200, verbose_name='вопрос', null=False, blank=False)
quiz = models.ForeignKey('Quiz', null=False, on_delete=models.CASCADE, verbose_name='тема')

class Answer(models.Model):
text = models.CharField(max_length=200, verbose_name='ответ', null=False, blank=False)
correct = models.BooleanField(default=False)
question = models.ForeignKey('Question', on_delete=models.CASCADE, verbose_name='вопрос')

admin.py

class AnswerInline(admin.TabularInline):
model = Answer

class QuestionResource(resources.ModelResource):
quiz = fields.Field(column_name='quiz', attribute='quiz', widget= ForeignKeyWidget(Quiz, 'name'))

class Meta:
    model = Question

class QuestionAdmin(ImportExportActionModelAdmin):
resource_class = QuestionResource
inlines = [AnswerInline, ]

введите сюда описание изображения

Ответы

▲ 0

в вашем коде ошибка:

class QuestionAdmin(ImportExportActionModelAdmin):

Вам необходимо наследовать:

class QuestionAdmin(ImportExportModelAdmin):

результат должен выглядеть:

from import_export.admin import ImportExportModelAdmin

class AnswerInline(admin.TabularInline):
    model = Answer

class QuestionResource(resources.ModelResource):
    quiz = fields.Field(column_name='quiz', attribute='quiz', widget=ForeignKeyWidget(Quiz, 'name'))

    class Meta:
        model = Question

class QuestionAdmin(ImportExportModelAdmin):
    resource_class = QuestionResource
    inlines = [AnswerInline, ]

Так должно работать. Ну и про регистрации не забудьте =)