Я хочу добавить рендеринг на месте (в форме), желательно даже без нажатия кнопки, но кнопка тоже подойдет.
Я пытаюсь получить латексную версию текста, введенного в текстовое поле.Я использую модели с 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
, когда я нажимаю одну из кнопок.
Любая помощь приветствуется, спасибо!