Как получить некоторые результаты перед отправкой формы, используя Django extra_views? - PullRequest
0 голосов
/ 31 января 2019

Я хочу добавить рендеринг на месте (в форме), желательно даже без нажатия кнопки, но кнопка тоже подойдет.

Я пытаюсь получить латексную версию текста, введенного в текстовое поле.Я использую модели с Django-extra-views .То, что я хочу, не должно быть трудной задачей, но я не могу ее решить.

Мой вопрос: есть ли способ сделать это?Или как обойти эту проблему, если я использую модели моделей на основе классов (как я представлю в своем коде)?

Я попытался переопределить метод form_valid() как:

def form_valid(self, form):
    if 'render' in self.request.POST:
        # Do something
    elif 'addQ' in self.request.POST:
        # Do something

Но это не работает по какой-то причине, которую я не понимаю.

Views.py

class QuestionCreateView(LoginRequiredMixin, CreateWithInlinesView):
    model = Question
    form_class = questionForm
    inlines = [QLevelInline, QSubjectInline, QMethodInline]

    def forms_valid(self, form, inlines):
        if 'render' in self.request.POST:
            print("RENDER")
        elif 'addQ' in self.request.POST:
            print("ADD QUESTION")
        form.instance.author = self.request.user
        self.object = form.save()
        for inline in inlines:
            inline.save()
        return super().form_valid(form)

Question_form.html

<form method="POST">
    {% csrf_token %}
    <fieldset class="form-group">
        {{ form }}
        <button class="btn btn-outline-info" type="submit" name="render">Render</button>
        {% for formset in inlines %}
            {{ formset }}
        {% endfor %}
    </fieldset>
    <button class="btn btn-outline-info" type="submit" name="addq">Add Question</button>
</form>

Рендерингчасть в точности такая: она находится в середине формы, и я использую latexify

Render-image (требуется минимум 10 репутаций для отображения в строке - будет признателенесли кто-то отредактирует)

Я ищу способ, которым, когда я нажимаю рендер, я получу показанный результат независимо от того, правильно ли заполнена форма или нет.

Хотя он даже не запускает функцию forms_valid, когда я нажимаю одну из кнопок.

Любая помощь приветствуется, спасибо!

...