Хочу создать БД для тестов(Предметы, вопросы, ответы). 3 модели соединены между собой. вот код models.py :
from django.db import models # Модель Предметов class Subject(models.Model): subject_name = models.CharField("Название предмета:", max_length=100) LEVEL_CHOICES = ( ("1", "1"), ("2", "2"), ("3", "3"), ) level = models.CharField( "Уровень предмета:", max_length = 20, choices = LEVEL_CHOICES, default = '1' ) def __str__(self): return self.subject_name class Meta: verbose_name = "Предмет" verbose_name_plural = "Предметы" # Модель Вопросов class Question(models.Model): subject_id = models.ForeignKey(Subject, verbose_name='Предмет', on_delete=models.CASCADE) question = models.TextField("Вопрос") def __str__(self): return self.question class Meta: verbose_name = "Вопрос" verbose_name_plural = "Вопросы" # Модель Ответов class Answer(models.Model): question_id = models.ForeignKey(Question, verbose_name='Вопрос', on_delete=models.CASCADE) answer = models.TextField("Ответ") correct_answer = ( ("0", "Нет"), ("1", "Да"), ) level = models.CharField( "Правильный ответ:", max_length = 1, choices = correct_answer, default = '0' ) def __str__(self): return self.answer class Meta: verbose_name = "Ответ" verbose_name_plural = "Ответы"
admin.py :
from django.contrib import admin from .models import Subject, Question, Answer admin.site.register(Subject) admin.site.register(Question) admin.site.register(Answer)
Тут видно что модели вопросов и ответов выводятся отдельно:
Мне нужно сделать чтобы при добавлении Вопроса тама же была формы добавления ответов в одном месте.
(Сделать 1 таблицу для вопросов и ответов не вариант, потому что мне нужно чтобы ответы были именно в отдельной таблице, чтобы потом добавлять дополнительные поля).
И тут ещё одна проблема возникает, как сделать чтобы формы добавления ответов выводились 4 штуки, и чтобы они добавлялись в 4 раза в таблицу под разными айди, по foreginkey одинаковый от модели вопросов.
В гугле не нашёл или неправильно пишу чтоли как то.. В документации подобного случается я лично не смогу найти.. Помогите кто знает плиз..