我正在尝试创建一个新模型来跟踪当前密码和最近使用的最近一次使用的密码。我希望它看起来像这样原油例如:创建一个新表(模型)并将它与Django中的auth_user关联
ID --- CUR_PASS --- PREV_PASS
1 --- 123 --- 321
2 --- 456 --- 654
是否有可能使ID的用户名我AUTH_USER表?
这里是I类到目前为止有:
# class model to store previously used passwords
class oldPass(models.Model):
# username = models.ForeignKey('something') --> instead of ID?
current_pass = models.CharField(max_length=100)
prev_pass = models.CharField(max_length=100)
class Meta: # meta class to define the table name
db_table = "old_pass"
我试图让它这样我就可以有ID是用户名和AUTH_USER更改密码时,请回old_pass表,并比较确保它们不是的值。如果它是其中一个,则反馈一个错误。
我最大的问题是这些:
- 我不知道如何导入AUTH_USER这样我就可以将用户名分配到这个新表
- 我不知道如何更改ID为用户名而不是数字。 (这会使用ForeignKey的做什么?)
- 我希望能够以比较值的变量传递...#3
例子: - 我想执行User.set_password( 'pass')(以便传递被散列),然后我想在提交User.save()之前将此新密码与'current_pass'和'prev_pass'进行比较。如果密码匹配使用的密码之一,我想中止。
我使用Django 1.9和Python 2.7.13
UPDATE 所以在看答案接收和研究的详细信息...这是我的新类
from django.contrib.auth.models import User
# class model to store previously used passwords
class oldPass(models.Model):
# username = models.ForeignKey(User) --> instead of ID?
current_pass = models.CharField(max_length=100)
prev_pass = models.CharField(max_length=100)
class Meta: # meta class to define the table name
db_table = "old_pass"
我不明白你在问什么。为什么不只是'models.ForeignKey('auth.User')'?为什么你需要这个“ID”(无论你是什么意思)? –
这很公平,我觉得我没有清楚地解释这一点。我想让ID字段成为用户名,而不是普通的1,2,3,4等布局。我从下面的L.Xiao的回答中知道,ID字段并不是我想的那么重要。我真的想有3个字段,用户名,current_pass,prev_pass ..并设置用户名,我想从auth_user表中拉出它。 –