我在学习django时构建了一个简单的登录机制,并且我有正确的视图代码 - 它使用一个简单的表单,但它不适用于此(实际上从文档中复制粘贴) Bootstrap,我无法弄清楚原因。特别是(用户名和密码)request.POST.get' s返回无。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv = "X-UA-Compatible" contant = "IE = edge">
<meta name = 'viewport' content = 'width = device-width, initial-scale = 1'>
<title>title</title>
<meta name="description" content="Minimal Blogging Platform">
<meta name="author" content="MiBlo">
{% load staticfiles %}
<link rel="stylesheet" href="{% static '/css/bootstrap.min.css' %}">
<script src="{% static '/js/bootstrap.min.js' %}"></script>
</head>
<body>
<h1 align='middle' style="margin-bottom: 80px; margin-top: 80px;">Blogging made (very) minimal</h1>
<form action = "/blog/login/" class="form-horizontal col-sm-offset-3" method='post'>{% csrf_token %}
<div class="form-group">
<label for="username" class="col-sm-2 control-label">Username</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="username" placeholder="Username" value="chuj">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Password</label>
<div class="col-sm-3">
<input type="password" class="form-control" id="password" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-4">
<div class="checkbox">
<label>
<input type="checkbox"> Remember me
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-4">
<input type="submit" value="OK">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-4">
<a href="#">Register</a>
</div>
</div>
</form>
</body>
</html>
&#13;
答案 0 :(得分:2)
这很容易。 <input>
都没有name
属性,这是将值传递给表单的内容。
<input type="text" class="form-control" id="username" placeholder="Username" value="chuj" name="username" />
<input type="password" class="form-control" id="password" placeholder="Password" name="password" />
解决方案:将name
属性添加到两者中。
name="username" />
name="password" />
id
属性仅用于在客户端使用JavaScript识别它们。对于传统形式,name
属性比其他任何东西都重要。在这种情况下,您甚至不需要提供id
。在这里,id
仅用于<label>
工作。
答案 1 :(得分:0)
您必须在name
字段中添加input
属性。
<input type="text" name='username' class="form-control" id="username" placeholder="Username" value="chuj">
<input type="password" name='password' class="form-control" id="password" placeholder="Password">
https://docs.djangoproject.com/en/1.11/topics/forms/#building-a-form