我正在嘗試創建一個新模型來跟蹤當前密碼和最近使用的最近一次使用的密碼。我希望它看起來像這樣原油例如:創建一個新表(模型)並將它與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表中拉出它。 –