繁体   English   中英

提交表单Django Bootstrap Toolkit

[英]Submitting Form Django Bootstrap Toolkit

我正在使用Django Bootstrap Toolkit来设计网站样式,但遇到了一个小问题。 我正在尝试在基本HTML中嵌入一个本质上是用户开关的表单,据此,给定一个名称列表,用户可以决定他或她是否要在使用网站时切换用户,而不是以“访客”身份登录。 ”(该网站是内部网站,因此真正不需要凭据身份验证)。 我的看法是这样的:

from django.shortcuts import render, render_to_response, redirect
from django.template import RequestContext
from django.http import HttpResponse, Http404

import datetime

myUsers = ['User A', 'User B', 'User C', 'User D', 'User E', 'Guest']

def index(request):
    # make login default guest if not logged in
    if not 'myUser' in request.session:
        request.session['myUser'] = 'Guest'
    # grab user if we've submitted login form from this page
    if request.method == 'POST':
        if 'myUser' in request.POST:
            request.session['myUser'] = request.POST['myUser']
    return render(request, 'home/index.html', {'myUsers': myUsers})

def login(request, myUser):
    request.session['myUser'] = myUser
    return redirect('index')

包含表单的基本HTML模板如下:

{% load bootstrap_toolkit %}
<html>
<head>
    <title>{% block title %}{% endblock %}</title>
    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
    <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
    {% bootstrap_javascript_tag %}
</head>
<body>
    {% block header %}
        <h3 style="font-family: Source Sans Pro, Myriad Pro; font-size: 16px; margin-left: 20px">
        {% if request.session.myUser %}
            Current User: {{ request.session.myUser}}
            <div class="navbar">
                <form class="navbar-form pull-left" action="" method="post" id="myUser">
                {% csrf_token %}
                    <select name id class="form-control" style="width: 200px;">
                        {% for myUser in myUsers %}
                            <option value="{{ myUser }}">{{ myUser }}</option>
                        {% endfor %}
                    </select>
                    <button id="formSubmit" type="submit" class="btn btn-default">Change User</button>
                </form>
            </div>
        {% else %}
            No User Logged In
            <div class="navbar">
                <form class="navbar-form pull-left" action="" method="post" id="myUser">
                {% csrf_token %}
                    <select name id class="form-control" style="width: 200px;">
                        {% for myUser in myUsers %}
                            <option value="{{ myUser }}">{{ myUser }}</option>
                        {% endfor %}
                    </select>
                    <button id="formSubmit" type="submit" class="btn btn-default">Login</button>
                </form>
            </div>
        {% endif %}
        </h3>
    {% endblock %}
    <hr>
    <h1 style="text-align:center; font-family: Myriad Pro; font-size: 60px; padding: 10px">MySite</h1>
    <div style="text-align:center" name="content">
        {% block content %}

        {% endblock %}
    </div>
    {% block footer %}
    {% endblock %}
</body>
</html>

我获得了默认的Guest登录名,这不是问题,但是当用户单击下拉菜单并选择另一个人时,我并没有遇到任何类型的用户切换。 很可能我缺少了一些东西,但是不幸的是我一直无法弄清。 非常感谢您的帮助!

您的问题如下, <select name id class="form-control" style="width: 200px;">

您尚未指定<select></select>表单字段的名称。

只需修改您的代码以包括正确的表单字段名称即可。

<select name="myUser" class="form-control" style="width: 200px;">

请注意,强烈建议您使用Django表单来处理表单数据。

暂无
暂无

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

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