在Django管理员中,我错误地通过尝试错误的密码来锁定自己。 我后来删除了用户并使用manage.py createsuperuser创建了另一个用户。但是,它仍然说我被锁定了。我如何解锁自己?
当我尝试使用Django admin登录时出现以下错误。
帐户已锁定:登录尝试次数过多。联系管理员以解锁您的帐户。
答案 0 :(得分:3)
鉴于您的错误消息和3次点击政策,我假设您的项目中有django-axes。无论用户如何,您都可以将其配置为按IP阻止。这可以解释为什么创建新用户不起作用。
Djang-axes documentation为您提供了如何清除锁定的概述。
manage.py axes_reset
将重置所有锁定和访问记录。
如果您目前正在制作并且不想冒重置任何有效锁定的风险,您可以尝试仅重置ip
manage.py axes_reset ip will clear lockout/records for ip
因此,例如,如果您在服务器所在的同一台计算机上登录,则可以使用localhost:
manage.py axes_reset ip 127.0.0.1
如果由于某种原因无效,您仍然可以选择从数据库中手动删除AccessAttempt
。当然,这假定您可以访问您的数据库,您的用户具有删除权限,您熟悉sql,并且您没有更改django-axis的默认表名。
delete from axes_accessattempt where username ='your_username';
其中'your_username'是您要解锁的帐户。
这也可以通过ip完成:
delete from axes_accessattempt where ip_address='your_ip';
其中'your_ip'是您正在使用的计算机的IP地址。
答案 1 :(得分:2)
从命令行重置尝试:
python manage.py axes_reset
将重置所有锁定和访问记录。python manage.py axes_reset_ip [ip ...]
将清除给定 IP 地址的锁定和记录。python manage.py axes_reset_username [username ...]
将清除给定用户名的锁定和记录。python manage.py axes_reset_logs (age)
将重置(即删除)早于给定年龄(默认为 30 天)的 AccessLog 记录。答案 2 :(得分:1)
是的,我是怎么做的..使用<?php
// connect to the database
include('variables.php');
// get the records from the database
$sql = "SELECT * FROM products ORDER BY id ASC LIMIT 0, 6";
$result = $connection->query($sql);
$getImage=mysqli_query($connection, "SELECT * FROM products ") or die("Could not retrieve image: " .mysqli_error($connection));
$path=mysqli_fetch_assoc($getImage) or die("Could not fetch array : " .mysqli_error($connection));
if ($result)
{
// output data of each row
while($row = $result->fetch_assoc())
{
echo '<li class="span3"><div class="product-box">';
echo'<span class="sale_tag"></span>';
echo'<p><a href="product_detail.php?id=' . $row["id"] . '"><img src="../backend/images/'.$path['productimage'].'" width="250" height="120"></a></p>';
echo $row["name"]. "</a><br>";
echo'<a href="products.html" class="category">' . $row["categoryname"]. '</a>';
echo'<p class="price">KSh:' . $row["price"].'</p>';
echo'</div></li>';
}
}
?>
转到shell
输入以下命令
python manage.py shell
如果需要数据,则必须通过
仅删除包含用户名的对象from axes.models import AccessAttempt
AccessAttempt.objects.all().delete()