【问题标题】:How to fix: Django forms: {{ form }} doesn't show up any result in html page如何修复:Django 表单:{{ form }} 在 html 页面中不显示任何结果
【发布时间】:2019-06-06 12:21:18
【问题描述】:

我创建了一个 django 表单:

#forms.py
from django import forms


class NameForm(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField(widget=forms.Textarea)
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)

在视图文件中:

#views.py
def get_form(request):
print(request.POST)
form = NameForm(request.POST or None)
if form.is_valid():
    print(form.cleaned_data)
return render(request, "name.html", {"title": "Contact us"})

我已导入模板文件夹内的 html 文件:

#templates/name.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/your-name/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
</body>
</html>

但是,它并没有显示任何东西,只是一个提交按钮。我不知道是什么问题。我将非常感谢有关此问题的解决方案。

更新:如果我创建一个新的 html 文件,表单就会显示在那里。但是,如果我在包括 boostarp 在内的主要 html 中使用它,它就不会出现。这是我的html的完整代码:

{% extends 'base.html' %}

{% block content %}
    <!-- Team -->
    {% for card in cards %}
        <!-- Team member -->
        <div class="col-xs-12 col-sm-6 col-md-4">
            <div class="image-flip" ontouchstart="this.classList.toggle('hover');">
                <div class="mainflip">
                    <div class="frontside">
                        <div class="card">
                            <div class="card-body text-center">
                                <p><img class=" img-fluid"
                                        src="https://sunlimetech.com/portfolio/boot4menu/assets/imgs/team/img_01.png"
                                        alt="card image"></p>
                                <h4 class="card-title">{{ card.name }}</h4>
                                <p class="card-text">{{ card.description }}</p>
                                <a href="#" class="btn btn-primary btn-sm"><i class="fa fa-plus"></i></a>
                            </div>
                        </div>
                    </div>
                    <div class="backside">
                        <div class="card">
                            <div class="card-body text-center mt-4">
                                <h4 class="card-title">{{ card.name }}</h4>
                                <!--<p class="card-text"> {{ card.back_description }}-->
                                <form action="/your-name/" method="post">
                                    {% csrf_token %}
                                    {{ form }}
                                    <input type="submit" value="Submit">
                                </form>
                                <!--</p> -->
                                <ul class="list-inline">
                                    <li class="list-inline-item">
                                        <a class="social-icon text-xs-center" target="_blank" href="#">
                                            <i class="fa fa-facebook"></i>
                                        </a>
                                    </li>
                                    <li class="list-inline-item">
                                        <a class="social-icon text-xs-center" target="_blank" href="#">
                                            <i class="fa fa-twitter"></i>
                                        </a>
                                    </li>
                                    <li class="list-inline-item">
                                        <a class="social-icon text-xs-center" target="_blank" href="#">
                                            <i class="fa fa-skype"></i>
                                        </a>
                                    </li>
                                    <li class="list-inline-item">
                                        <a class="social-icon text-xs-center" target="_blank" href="#">
                                            <i class="fa fa-google"></i>
                                        </a>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- ./Team member -->
    {% endfor %}

{% endblock %}

这让我疯狂了三天。我期待一个解决方案。谢谢

更新2:

#base.html
{%  load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <link href="{% static 'css/stylesheet.css' %}" rel="stylesheet" type="text/css">
    <!------ Include the above in your HEAD tag ---------->
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<section id="team" class="pb-5">
    <div class="container">
        <h5 class="section-title h1">OUR TEAM</h5>
        <div class="row">
            {% block content %}
            {% endblock %}
        </div>
    </div>
</section>
</body>
</html>

#card.html
{% extends 'base.html' %}

{% block content %}
    <!-- Team -->
    {% for card in cards %}
        <!-- Team member -->
        <div class="col-xs-12 col-sm-6 col-md-4">
            <div class="image-flip" ontouchstart="this.classList.toggle('hover');">
                <div class="mainflip">
                    <div class="frontside">
                        <div class="card">
                            <div class="card-body text-center">
                                <p><img class=" img-fluid"
                                        src="https://sunlimetech.com/portfolio/boot4menu/assets/imgs/team/img_01.png"
                                        alt="card image"></p>
                                <h4 class="card-title">{{ card.name }}</h4>
                                <p class="card-text">{{ card.description }}</p>
                                <a href="#" class="btn btn-primary btn-sm"><i class="fa fa-plus"></i></a>
                            </div>
                        </div>
                    </div>
                    <div class="backside">
                        <div class="card">
                            <div class="card-body text-center mt-4">
                                <h4 class="card-title">{{ card.name }}</h4>
                                <!--<p class="card-text"> {{ card.back_description }}-->
                                <form action="/your-name/" method="post">
                                    {% csrf_token %}
                                    {{ form }}
                                    <input type="submit" value="Submit">
                                </form>
                                <!--</p> -->
                                <ul class="list-inline">
                                    <li class="list-inline-item">
                                        <a class="social-icon text-xs-center" target="_blank" href="#">
                                            <i class="fa fa-facebook"></i>
                                        </a>
                                    </li>
                                    <li class="list-inline-item">
                                        <a class="social-icon text-xs-center" target="_blank" href="#">
                                            <i class="fa fa-twitter"></i>
                                        </a>
                                    </li>
                                    <li class="list-inline-item">
                                        <a class="social-icon text-xs-center" target="_blank" href="#">
                                            <i class="fa fa-skype"></i>
                                        </a>
                                    </li>
                                    <li class="list-inline-item">
                                        <a class="social-icon text-xs-center" target="_blank" href="#">
                                            <i class="fa fa-google"></i>
                                        </a>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- ./Team member -->
    {% endfor %}

{% endblock %}

【问题讨论】:

    标签: python html django bootstrap-4 django-forms


    【解决方案1】:

    在您的 views.py 文件中更改这一行:

    return render(request, "name.html", {"title": "Contact us"})
    

    进入这个:

    return render(request, "name.html", {'form': form })
    

    【讨论】:

    • 感谢您的帮助。这解决了这个问题。但是,我已经更新了我的问题。请问您是否也有解决方案?
    • 我创建了 boostrap 卡片,但 {{ form }} 没有出现在里面。
    • 像我说的那样呈现表单后,您的表单仍然没有显示?你更新后我没有收到你的问题
    • 我创建了一个 base.html 作为默认 html。我创建了另一个名为 form.html 的 html 文件并从 base.html 扩展它。我还创建了另一个名为 name.html 的 html,它是一个独立的 html。该表单在 Name.html 中有效,但在 form.html 中无效
    • 更新后提供的html代码,是form.html代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2021-08-09
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多