如何提交使用Django extra_views形式之前得到了一定的效果?

时间:2019-01-30 21:33:08

标签: django django-models django-forms django-views

我要添加一些渲染的地方(形式),优选甚至没有必须点击一个按钮,但按钮也可以。

我想获得在文本框中输入文本的乳胶版本。我使用modelForms与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(min 10 reputations are required to show inline - would be appreciated if anyone edits)

我期待找到一种方法,当我点击渲染我会不管形式正确与否充满所示的结果。

虽然它甚至不运行该函数forms_valid当我点击按钮中的一个。

感谢您的帮助!

0 个答案:

没有答案