django模型是如何按位过滤的

时间:2013-12-19 04:30:29

标签: django

所有

我想使用整数来存储用户验证状态。例如:需要验证以下信息:电子邮件地址,公民身份证,驾驶执照。定义如下: 0x00000001表示用户提交的电子邮件地址。 0x00000002表示用户的电子邮件已经过验证并通过。 0x00000005表示用户的电子邮件地址不正确。

0x00000010表示用户提交的公民身份证。 0x00000020表示已验证并传递了用户的公民ID。 0x00000050表示用户的公民ID不正确。

0x00000100表示​​用户提交的驱动器许可证ID。 0x00000200表示已验证并通过了用户的驱动器许可证ID。 0x00000500表示用户的驱动器许可证ID不正确。

我想过滤用户的电子邮件已经过验证。我怎样才能通过django模型过滤它。我想得到的是状态& 0x0000000f == 2.

非常感谢。

1 个答案:

答案 0 :(得分:0)

我不会尝试使用此方法存储在您的数据库中。为什么不简单地选择三个SmallIntegerField,例如status_emailstatus_citizenstatus_drivelicense,它们可以保存值0(已提交),1(已验证)和-1(不正确)? 这对于您的应用程序逻辑以及在数据库中进行过滤来说要容易得多。

您能解释为什么要按照这样的方式对信息进行编码的原因吗?