Это вопрос об архитектуре приложения, которое у меня есть, и какие у меня есть варианты для достижения моей конкретной цели.
Я пытаюсь найти лучший способ создания потока для приложение викторины у меня есть. Сайт построен с Django 2.2, Vanilla JS и JQuery 3.4.1, а также Bootstrap 4.
Текущий поток из Приложение выглядит так:
Пользователь начинает со страницы 'questions'
, где он может Add a multiple-choice question
или Add a true/false question
к пулу вопросов. Это огромный пул вопросов после проведения только 10 тестов.
Вопросы с множественным выбором используют наборы форм для answers
, которые связаны с ними (это было неинтересно, и мне нравится кодировать).
После того, как вопросы добавлены в пул, пользователь нажимает Create a Quiz
, где они переносятся на страницу 'quiz-create'
, которая позволяет им создать тест, выбрать нужные варианты и выбрать все вопросы, которые он хочет задать. загадка.
Что бы я хотел, чтобы flow был похож на:
Пользователь начинает со страницы 'quiz-create'
, где он может создать тест, выберите параметры, которые они хотят, а также выберите Add a multiple-choice question
или Add a true/false question
. Когда они выбирают кнопку для добавления вопроса, мне бы хотелось, чтобы во всплывающем окне Bootstrap 4 появилась форма для создания вопроса. Как только они его создадут, отправьте его, используя AJAX, и обновите текущую викторину этим вопросом.
Q1: Могу ли я пройти тест slug
или pk
представлению, которое обрабатывает questions
, чтобы узнать, какой тест он должен обновить? Будет ли он пытаться загрузить questions
slug
или pk
или я думаю об этом, потому что я обычно использую ModelViews? Я полагаю, что они автоматически получают аргументы, которые вы ему даете, и используете модель, указанную в ModelView.
Q2: В настоящее время я использую ModelForms, но я предполагаю, что если я отправляю данные из нескольких модели, которые мне нужно будет использовать более общую c форму. Какой тип формы я должен использовать для этого? Должен ли я использовать больше общих c форм и представлений?
Тест должен отображать список вопросов (но не показывать ответы). Я хочу, чтобы эти вопросы можно было обновлять / удалять из этого списка. При обновлении должно открыться модальное окно с формой обновления, а при удалении следует просто отправить запрос AJAX представлению, которое обрабатывает удаление вопросов (затем ожидать ответа?)
Q3: Может Я отправляю запрос AJAX с <form action={% my url here %}
на любой URL-адрес и ожидаю, что представление ответит непосредственно на страницу, с которой отправляется форма?
Q4: Чтобы отобразить вопросы на странице quiz-create
я могу просто передать их как context
из представления создания викторины, верно?
Q5: Я знаю, что этот вопрос немного открыт для мнения поэтому я буду удалять его, если людям это не нравится. Есть ли что-то еще, о чем я должен спрашивать или думать в этом процессе? Я немного новичок в AJAX / Javascript / JQuery, но его не так сложно использовать. Основное внимание уделяется Django, но, похоже, для этого понадобится AJAX / JS / JQuery.
Я действительно ценю любого, кто потратит время, чтобы подумать над моим вопросом и дать ответ.
Simplisti c Модели, которые я использую:
class Quiz:
title = models.CharField()
otherfields...
class MCQuestion: # subclassed from Question model
question = models.CharField()
quiz = models.ForiegnKey(Quiz, on_delete..)
class TFQuestion: # subclassed from Question model
question = models.CharField()
quiz = models.ForiegnKey(Quiz, on_delete..)
class Answer:
answer = models.TextField()
question = models.ForeignKey(Question, on_delete..)