alexkomp
@alexkomp
Простота — залог надежности.

Как сделать добавление дополнительного объекта в модели на django?

Есть три модели: Quest - модель конкурсов, Questions - модель вопросов и Questions_var - варианты ответа к каждому вопросу.
Я сделал, чтобы можно было добавлять дополнительные объекты модели Questions (модель вопросов) в модели Quest (модель конкурсов).
И сделал, чтобы можно было добавлять дополнительные объекты Questions_var (варианты ответа) к каждому вопросу (Questions - модель вопросов).

Quest в админ панели
5d677e1895411382476913.png

Questions в админ панели
5d677e790c557349392839.png

models.py
class Quest(models.Model):
    title = models.CharField(max_length = 500)
 
    
    def __str__(self):
        return self.title


class Questions(models.Model):
    title = models.CharField('Название вопроса', max_length=500)
    question_above = models.CharField('Ответ', max_length=1000)
    quest = models.ForeignKey(Quest, on_delete=models.CASCADE, related_name='quest')
    
    def __str__(self):
        return self.title


class Questions_var(models.Model):
    question = models.CharField('Вопрос', max_length=500)
    questions = models.ForeignKey(Questions, on_delete=models.CASCADE, related_name='questions')


admin.py
class QuestionsInline(admin.TabularInline):
    fk_name = 'questions'
    model = Questions_var
    extra = 1


@admin.register(Questions)
class QuestionsAdmin(admin.ModelAdmin):
    inlines = [QuestionsInline]
    
  
class QuestInline(admin.TabularInline):
    fk_name = 'quest'
    model = Questions
    extra = 1


@admin.register(Quest)
class QuestAdmin(admin.ModelAdmin):
    inlines = [QuestInline]


Все работает, но неудобно. Как моно сделать, чтобы варианты ответа можно было вводить в модели Quest?
Чтобы варианты ответа были тут:
5d67812d0450a516049566.png
  • Вопрос задан
  • 257 просмотров
Решения вопроса 1
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы