繁体   English   中英

Django 脆 forms 工作不正常

[英]Django crispy forms is not working correctly

脆的 forms 不起作用,我没有任何错误但 forms 仍然正常。 想得到帮助。 我不明白 我从来没有遇到过这个问题,谢谢

我的 INSTALLED_APPS 中有'crispy_forms' ,并且安装正确

我尝试了很多东西,但没有得到任何结果

新家.html

{% load crispy_forms_tags %}
{% load static %}

{% block content %}

<link rel="stylesheet" type="text/css" href="{% static 'pools/newmain.css' %}">

<!-- Load an icon library to show a hamburger menu (bars) on small screens -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<div class="topnav" id="myTopnav">
  <a href="#home" class="active">Home</a>
  <a href="#news">News</a>
  <a href="#contact">Contact</a>
  <a href="#about">About</a>
  <a href="javascript:void(0);" class="icon" onclick="myFunction()">
    <i class="fa fa-bars"></i>
  </a>
</div>



<div class="content-section">
  <form method="POST" action="">
    {% csrf_token %}
    {{ form|crispy }}
    <button class="btn btn-outline-info" type="submit">Send</button>
  </form>

</div>

{% endblock %}

newmain.css

body {
    background-color: coral;
}

/* Add a black background color to the top navigation */
.topnav {
  background-color: #333;
  overflow: hidden;
}

/* Style the links inside the navigation bar */
.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

/* Change the color of links on hover */
.topnav a:hover {
  background-color: #ddd;
  color: black;
}

/* Add an active class to highlight the current page */
.topnav a.active {
  background-color: #4CAF50;
  color: white;
}

/* Hide the link that should open and close the topnav on small screens */
.topnav .icon {
  display: none;
}

视图.py

def newhome(request):
    form = NewTask

    if request.method == "POST":
        form = NewTask(request.POST)
        if form.is_valid():
            form.save()
            task = form.cleaned_data["title"]
            print(task)

        else:
            form = NewTask()

        return render(request, "pools/newhome.html", {"form": form})
    return render(request, "pools/newhome.html", {"form": form})

1.在文档中,它说:

脆皮形式不包括 static 文件。 您需要自己包含正确的相应媒体文件,具体取决于您使用的 CSS 框架(模板包)。 这可能涉及一个或多个 CSS 和 JS 文件。 阅读 CSS 框架的文档以获取有关如何设置的帮助。

您是否在此处粘贴了所有 html 文件代码? 我没有看到 cryspy-forms 文档提到的任何 CSS 框架,例如bootstrap4

请注意,您需要将以下内容添加到您的html

参见 CDN2的引导网站


<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

不要忘记删除您的浏览器历史记录!

  1. 修复 css 部件后,您的表单可能无法正确使用 function。 尝试替换为:
def newhome(request):
    if request.method == "POST":
        form = NewTask(request.POST)
        if form.is_valid():
            task = form.cleaned_data["title"] # this is good practice because later you might want to add things like user = request.user before saving the form.
            form.save()
            print(task)
        else:
            print(form.errors) 
    else:
        form = NewTask()

    return render(request, "pools/newhome.html", {"form": form})

我的 INSTALLED_APPS 中有“crispy_forms”,并且安装正确

您可能已将“crispy_forms”放在 INSTALLED_APPS 中,但您是否在 settings.py 中指定了模板包? 例如CRISPY_TEMPLATE_PACK = 'uni_form'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM