检查表单是否存在或是否在模板中呈现。 Django的

时间:2018-02-02 06:38:37

标签: django django-forms django-crispy-forms

我的情况是我有时会显示一个表单,有时我不会显示它。

实际上,有多种形式使用相同的tbl_items_transactions按钮。

如果模板中未显示特定表单,我该怎么做才能处理这种情况。

模板代码

Submit

这是视图代码

{% extends BASE_TEMPLATE %}
{%  load crispy_forms_tags %}
{% block title %}<h2>New Thread</h2>{% endblock %}
{% block content %}
    <div class="col-md-6">
        <form method="post" accept-charset="utf-8">{% csrf_token %}
            {{ threadForm|crispy }}
            {{ postForm|crispy }}
            {% if SHOW_WIKI %}
            {{ wikiFrom|crispy }}
            {% endif %}
            <input type="submit" class="btn btn-primary btn-sm" value="Submit"/>
        </form>
    </div>

{% endblock %}

1 个答案:

答案 0 :(得分:1)

这不会给出确切的答案,但您可以稍微更改一下代码。为您提供条件部分。

if threadForm.is_valid() and postForm.is_valid():
    thread = threadForm.save(commit=False)
    post = postForm.save(commit=False)

    thread.wiki_revision = None

    thread.op = post
    post.setMeta(request)

    if is_authenticated(request):
        post.created_by = request.user                  
        post.save()

    thread.save()

    if wikiForm.is_valid():
        print("WikiForm is valid!")
        wiki = wikiForm.save(commit=False)
        print("Wiki has content")
        wiki.setMeta(request)
        if is_authenticated(request):
            wiki.author = request.user
        wiki.wiki_for = thread
        wiki.save()
        thread.wiki_revision = wiki
        thread.save()

    return HttpResponseRedirect(thread.get_absolute_url)