簡體   English   中英

如何將硬件設備注冊到Django用戶帳戶

[英]How to implement hardware device registration to a Django user account

我目前正在開發一個網站,允許用戶與他們可以在家中設置的硬件單元進行交互。 我目前正在使用django-allauth進行用戶注冊,這可以根據需要使用。 我的下一步是允許用戶將其硬件單元鏈接到他們的帳戶。 我希望使用某種由字符組成的唯一密鑰(例如Sr3D- $ 3tr-SQ2Q-CB24)來實現這一點,這些密鑰只能鏈接到一個帳戶。 我不希望它成為用戶模型(用於注冊)的一部分,而是稍后可以鏈接到一個Profile模型(鏈接到User模型)。

我已經廣泛搜索了django包或實現類似功能的例子,但是沒有運氣。 我相信這是非常標准的功能,例如當您必須使用購買時附帶的關鍵詞注冊您購買的游戲(訪問在線功能)時。

任何人都可以向我指出一些如何使用Django實現這個的例子或包嗎?

[編輯]在BingsF的第一個答案之后,我認為我應該更精確地遵循我所追求的功能。 基本上我想在數據庫中有一個表,我可以在其中添加合法的密鑰以及注冊它的用戶的用戶名(最初為'Null',直到用戶使用密鑰注冊自己)。 然后,當用戶注冊時,我想要檢查以確保他們輸入了合法的密鑰並且之前沒有注冊過。

用戶應該能夠注冊多個設備。

我的方法可能是創建一個新模型,外鍵引用User模型。

它看起來像這樣(在你的models.py中):

class Device(models.Model):
    username = models.ForeignKey(User)
    hardware_key = models.CharField(max_length=32, primary_key=True)

然后,在您的網頁上,當用戶上傳新硬件密鑰時,您將執行以下操作:

from models import Device, User

try:
    device = Device.objects.get(hardware_key=<key>)
except ObjectDoesNotExist:
    # deal with case where user tries to register non-existent key
else:
    try:
        device.username = <user>
        device.save()
    except IntegrityError:
        # deal with case where key is already registered to another user

有關創建/使用模型的更多信息,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM