python - 如何在 Django 用户帐户中实现硬件设备注册

  显示原文与译文双语对照的内容
0 0

我目前正在一个网站上工作,这个网站允许用户与他们可以在家里设置的硬件单元交互。 我目前正在使用 django-allauth进行用户注册,这可以正常工作。 下一步是允许用户将他们的硬件单元连接到他们的帐户。 我希望使用一些由字符( 比如 ) 组成的独特的键来实现。 Sr3D-$3tr-SQ2Q-CB24 ) 只能连接到单个帐户。 我不希望这是用户模型( 注册)的一部分,而是以后在说明文件模型( 链接到用户模型) 中进行链接。

我已经广泛搜索 Django 包或者实现类似功能的示例,但是没有成功。 我相信这是非常标准的功能,例如当你必须使用 register 购买( 访问联机功能)的游戏时。

谁能告诉我如何使用 Django 实现这个示例或者包?

在下面的bingsf回答之后的[EDIT] 之后我想我应该更精确地在后面的功能中。 基本上我希望在数据库中有一个表,我可以添加合法的密钥和注册( 最初'空'直到用户用密钥注册自己)的用户名。 然后当用户寄存器我想要一个检查,确保他们输入了一个合法的密钥,并且它没有被注册。

用户应该能够对多个设备进行 register 操作。

时间: 原作者:

0 0

我的方法可能是创建一个新的模型,外部键引用用户模型。

它看起来像这个( 在你的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

有关创建/使用模型的更多信息,请参见这里的

...