Python django不';t提交第一个<;表格>;在模板中添加标记
我有一个基本模板要扩展:Python django不';t提交第一个<;表格>;在模板中添加标记,python,html,django,django-templates,Python,Html,Django,Django Templates,我有一个基本模板要扩展: {% load static %} {% load i18n %} <!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <me
{% load static %}
{% load i18n %}
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="">
<meta name="viewport" content="width=device-width,initial-scale=1">
{% block title %}
<title>taskmanager</title>
{% endblock title %}
<link rel="stylesheet" type="text/css" href="{% static 'common_static/base/styles/base.css' %}">
{% block extrahead %}{% endblock extrahead %}
</head>
<body>
<header>
<div class="header-main-area center-area">
<div id="switch-lang" class="header-element">
{% include 'svgpaths/language_icon.html' %}
{% get_current_language as LANGUAGE_CODE %}
{% get_language_info for LANGUAGE_CODE as current_language %}
<div class="header-element-caption"> {{ current_language.name_local }}</div>
<form action="{% url 'set_language' %}" method="post" class="lang-dropdown dropdown-content">{% csrf_token %}
{% get_available_languages as LANGUAGES %}
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<button type="submit" name="language" value={{ language.code }} class="dropdown-item">{{ language.name_local }}</button>
{% endfor %}
</div>
<div id="account" class="header-element">
{% include 'svgpaths/account_icon.html' %}
{% if username %}
<div class="header-element-caption">{{ username }}</div>
{% else %}
<div class="header-element-caption">{% translate "account" %}</div>
{% endif %}
<div class="acconunt-dropdown dropdown-content">
<a href="{% url 'logout' %}" class="dropdown-item">{% translate "log out" %}</a>
<a href={% url 'user_settings' %}><div class="dropdown-item">{% translate "settings" %}</div></a>
</div>
</div>
</div>
</header>
<main>
{% block maincontent %}
<h1>This is the base templated for extending</h1>
{% endblock maincontent %}
</main>
{% block bodybottom %}{% endblock bodybottom %}
</body>
</html>
{%load static%}
{%load i18n%}
{%block title%}
任务管理器
{%endblock title%}
{%block extrahead%}{%endblock extrahead%}
{%include'svgpaths/language_icon.html%}
{%get_当前语言为语言代码%}
{%get_language_Information for language_CODE as current_language%}
{{current_language.name_local}}
{%csrf_令牌%}
{%get_可用语言为语言%}
{%get_language_info_list for LANGUAGES as LANGUAGES%}
{%用于语言中的语言%}
{{language.name_local}}
{%endfor%}
{%include'svgpaths/account_icon.html%}
{%if用户名%}
{{username}}
{%else%}
{%translate“account”%}
{%endif%}
{%block maincontent%}
这是用于扩展的基本模板
{%endblock maincontent%}
{%block bodybottom%}{%endblock bodybottom%}
以及要用于扩展基本模板的模板:
{% extends 'base/base.html' %}
{% load i18n %}
{% load static %}
{% block title %}
<title>{% translate "logginig in" %}</title>
{% endblock title %}
{% block extrahead %}
<link rel="stylesheet" type="text/css" href="{% static 'users/style/authpages.css' %}">
{% endblock extrahead %}
{% block maincontent %}
<form method="post" action="{% url 'login' %}" class="main-form">
{% csrf_token %}
<label for="username">{% translate "User name: " %}</label>
{{ form.username }}
{{ form.username.errors }}
<label for="password">{% translate "Password: " %} </label>
{{ form.password }}
{{ form.password.errors }}
{% if form.errors %}
{{ form.non_field_errors }}
{% endif %}
<input type="submit" value="{% translate 'sign in' %}">
<input type="hidden" name="next" value="{{ next }}">
<a href="{% url 'register' %}">{% translate "Register" %}</a>
</form>
{% endblock maincontent %}
{%extends'base/base.html%}
{%load i18n%}
{%load static%}
{%block title%}
{%translate“logginig在%}
{%endblock title%}
{%block extrahead%}
{%endblock extrahead%}
{%block maincontent%}
{%csrf_令牌%}
{%translate“用户名:%}
{{form.username}
{{form.username.errors}
{%translate“密码:%}
{{form.password}}
{{form.password.errors}
{%if form.errors%}
{{form.non_field_errors}}
{%endif%}
{%endblock maincontent%}
{%block maincontent%}(几乎在页面底部)包含一段以
html标记开头的html以及其中的一些“django表单相关内容”。问题是,当我加载页面时,Django呈现
标记中的所有表单字段,但忽略
标记本身:
<main>
<input type="hidden" name="csrfmiddlewaretoken" value="LbJ3lrEw3qD3JtoDH7COpwzVWdQXwRzIuy9CaViWH0Liom8EAiI4TsjVP4wAooJa">
<label for="username">User name: </label>
<input type="text" name="username" autofocus="" autocapitalize="none" autocomplete="username" maxlength="150" required="" id="id_username">
<label for="password">Password: </label>
<input type="password" name="password" autocomplete="current-password" required="" id="id_password">
<input type="submit" value="sign in">
<input type="hidden" name="next" value="">
<a href="/accounts/register">Register</a>
</main>
用户名:
密码:
我找到的避免这个问题的唯一方法是在我的实际表单前面加上另一个空白的
标记。在本例中,Django忽略了“虚拟”表单,并很好地呈现了我的实际表单。这是一个bug还是我在Django中缺少了一些关于模板处理的信息?在基本模板中,您有一个没有结束标记的表单标记。这就是问题所在添加结束标记,它将呈现您的表单
<form action="{% url 'set_language' %}" method="post" class="lang-dropdown dropdown-content">
// add the closing tag
</form>
//添加结束标记
oh。。太尴尬了。谢谢你的回答!