Вставка записей в две таблицы с помощью одного представления во фреймворке Django rest
У меня есть три следующие модели.
class Quiz(models.Model):
name = models.CharField(max_length=50)
desc = models.CharField(max_length=500)
number_of_questions = models.IntegerField(default=1)
time = models.IntegerField(help_text="Duration of the quiz in seconds", default="1")
def __str__(self):
return self.name
def get_questions(self):
return self.question_set.all()
class Question(models.Model):
ques = models.CharField(max_length=200)
quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE)
def __str__(self):
return self.ques
class Answer(models.Model):
content = models.CharField(max_length=200)
correct = models.BooleanField(default=False)
question = models.ForeignKey(Question, on_delete=models.CASCADE)
def __str__(self):
return f"question: {self.question.ques }, answer: {self.content}, correct: {self.correct}"
Мне нужно создать api для создания вопроса. Для этого я должен использовать модель Вопрос и Ответ одновременно, например.
это страница администратора, но я хочу создать такой же api, который принимает вышеуказанные параметры и сохраняет их в базе данных. Как написать view.py для этого api ?
Для получения представления, способного легко создавать новые объекты, необходимо использовать CreateAPIView или ListCreateAPIView.
Затем вам придется создать ModelSerializers для ваших моделей, которые будут отвечать за обработку данных, передаваемых в представление.
Помните, что если вы хотите использовать вложенные сериализаторы, вам нужно переопределить их методы create, потому что сохранение вложенных экземпляров не поддерживается DRF по умолчанию.
Я бы рекомендовал вам изучить основы DRF (сериализаторы, представления, наборы представлений...), прежде чем пытаться создавать более сложные задачи.