- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Django 中开发一个应用程序。
我正在开发用户身份验证。
我在路径中有一个 registration.html 和 login.html 模板:模板>身份验证
一切,包括注册功能,都工作正常,但是当我尝试访问登录模板时,浏览器返回:
NoReverseMatch at /login
'app' is not a registered namespace
我敢打赌问题出在我在 settings.py 中添加的用于启用身份验证系统的 LOGIN_URL
(我正在遵循教程)。事实上,所有其他 View 都工作正常,只有指向 login.html 的 View 却不然。
以下是我与身份验证系统相关的所有内容:
在我的settings.py中:
LOGIN_URL = '/login'
在我的base.html中:
{% if user.is_authenticated %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{{ user_form.username }}</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="">profilo</a>
<a class="dropdown-item" href="{% url 'logout' %}">Log out</a>
</div>
</li>
{% elif not user.is_authenticated %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Login</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="{% url 'registration' %}">Registrati</a>
<a class="dropdown-item" href="{% url 'login' %}">Accedi</a>
</div>
</li>
{% endif %}
在我的身份验证> login.html中:
{% extends 'base.html'%} <!-- vuol dire inserisci qui la navigation toolbar contenuta in base -->
{% block content %}
<h1>Login</h1>
<br>
<div class="jumbotron">
<form action="{% url 'app:login' %}" method="post">
{% csrf_token %}
<label for="username">Username:</label>
<input type="text" name="username" value="" placeholder="nome utente">
<label for="password">Password:</label>
<input type="password" name="password" value="" placeholder="password">
<input type="submit" name="" value="Login">
</form>
</div>
{% load static %} <!-- Qui il tag è obbligatorio nonostante sia stato inserito dentro base.html -->
<!-- CSS -->
{% comment %} <link rel="stylesheet" type="text/css" href={% static "css/file.css" %}> {% endcomment %}
<!-- Javascript -->
{% comment %} <script type="text/javascript" src={% static "js/file.js" %}></script> {% endcomment %}
{% endblock %}
在我的 app > urls.py 中,urlpatterns
列表中:
path('authentication/registration', views_users_authentication.registration, name="registration"),
path('login', views_users_authentication.user_login, name="login"),
在我的项目> urls.py中,urlpatterns
列表中:
path('admin/', admin.site.urls),
path('', include('app.urls')),
然后我有一个单独的表来包含与身份验证系统相关的 View 函数,即 views_users_authentication.py ,其中包含:
def registration(request):
registered = False
# se l'utente ha lanciato il post
if request.method=="POST":
print("post eseguito!")
user_form = UserForm(data=request.POST)
profile_form = UserProfileInfoForm(data=request.POST)
# condizione di validità del form
if user_form.is_valid() and profile_form.is_valid():
print("form validi!")
user = user_form.save()
user.set_password(user.password) # questa linea hasha la pasword
user.save()
# registra l'utente
profile = profile_form.save(commit=False)
profile.user = user
registered=True
print("Utente registrato con successo!")
# condizione per registrare l'utente
if 'profile_pic' in request.FILES:
profile.profile_pic = request.FILES['profile_pic']
print("Acquisita la fotografia dell'utente!")
profile.save()
# attenzione al salvataggio dei form e dei modelli che sono due cose diverse
# registra le info aggiuntive
else:
print("Registrazione fallita:")
print(user_form.errors, profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileInfoForm()
context_dict = {'user_form':user_form, 'profile_form':profile_form, 'registered':registered}
return render(request, 'authentication/registration.html', context_dict)
def user_login(request):
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request, user)
return HttpResponseRedirect(reverse('home'))
else:
HttpResponse("Account non attivo")
else:
print("qualcuno ha cercato di loggarsi e ha fallito")
print("Username: {} and password {}".format(username,password))
return HttpResponse("Inseriti parametri non validi per il login!")
else:
return render(request, "authentication/login.html", {})
最佳答案
在您的 login.html
中,您应该仅使用 login
作为网址名称,而不是 app:login
:
<form action="{% url 'login' %}" method="post">
因为您没有在 urlpatterns.py 文件中指定 namespace 。如果您想使用 app
命名空间,您可以像这样更改 urlpattern:
path('', include('app.urls', namespace='app')),
关于python - NoReverseMatch at/login - LOGIN_URL 或反向功能出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60173679/
我正在使用 node.js 和 mocha 单元测试,并且希望能够通过 npm 运行测试命令。当我在测试文件夹中运行 Mocha 测试时,测试运行成功。但是,当我运行 npm test 时,测试给出了
我的文本区域中有这些标签 ..... 我正在尝试使用 replaceAll() String 方法替换它们 text.replaceAll("", ""); text.replaceAll("", "
早上好,我是 ZXing 的新手,当我运行我的应用程序时出现以下错误: 异常Ljava/lang/NoClassDefFoundError;初始化 ICOM/google/zxing/client/a
我正在制作一些哈希函数。 它的源代码是... #include #include #include int m_hash(char *input, size_t in_length, char
我正在尝试使用 Spritekit 在 Swift 中编写游戏。目的是带着他的角色迎面而来的矩形逃跑。现在我在 SKPhysicsContactDelegate (didBegin ()) 方法中犯了
我正在尝试创建一个用于导入 CSV 文件的按钮,但出现此错误: actionPerformed(java.awt.event.ActionEvent) in cannot implement
请看下面的代码 public List getNames() { List names = new ArrayList(); try { createConnection(); Sta
我正在尝试添加一个事件以在“dealsArchive”表中创建一个条目,然后从“deals”表中删除该条目。它需要在特定时间执行。 这是我正在尝试使用的: DELIMITER $$ CREATE EV
我试图将两个存储过程的表结果存储到 phpmyadmin 例程窗口中的单个表中,这给了我 mariadb 语法错误。单独调用存储过程给出了结果。 存储过程代码 BEGIN CREATE TABLE t
我想在 videoview 中加载视频之前有一个进度条。但是我收到以下错误。我还添加了所有必要的导入。 我在 ANDROID 中使用 AIDE 这是我的代码 public class MainActi
我已经使用了 AsyncTask,但我不明白为什么在我的设备 (OS 4.0) 上测试时仍然出现错误。我的 apk 构建于 2.3.3 中。我想我把代码弄错了,但我不知道我的错误在哪里。任何人都请帮助
我在测试 friend 网站的安全性时,通过在 URL 末尾添加 ' 发现了 SQL 注入(inject)漏洞该网站是用zend框架构建的我遇到的问题是 MySQL -- 中的注释语法不起作用,因此页
我正在尝试使用堆栈溢出答案之一的交互式信息窗口。 链接如下: interactive infowindow 但是我在代码中使用 getMap() 时遇到错误。虽然我尝试使用 getMapAsync 但
当我编译以下代码时出现错误: The method addMouseListener(Player) is undefined for the type Player 代码: import java.
我是 Android 开发的初学者。我正在开发一个接收 MySql 数据然后将其保存在 SQLite 中的应用程序。 我将 Json 用于同步状态,以便我可以将未同步数据的数量显示为要同步的待处理数据
(这里是Hello world级别的自动化测试人员) 我正在尝试下载一个文件并将其重命名以便于查找。我收到一个错误....这是代码 @Test public void allDownload(
我只是在写另一个程序。并使用: while (cin) words.push_back(s); words是string的vector,s是string。 我的 RAM 使用量在 4 或 5
我是 AngularJS 的新手,我遇到了一个问题。我有一个带有提交按钮的页面,当我单击提交模式时必须打开并且来自 URL 的数据必须存在于模式中。现在,模式打开但它是空的并且没有从 URL 获取数据
我正在尝试读取一个文件(它可以包含任意数量的随机数字,但不会超过 500 个)并将其放入一个数组中。 稍后我将需要使用数组来做很多事情。 但到目前为止,这一小段代码给了我 no match for o
有些人在使用 make 命令进行编译时遇到了问题,所以我想我应该在这里尝试一下,我已经在以下操作系统的 ubuntu 32 位和挤压 64 位上尝试过 我克隆了 git 项目 https://gith
我是一名优秀的程序员,十分优秀!