我有一个问题,我必须从管理页面为一个给定的用户存储两个IP字段。 我的用户模型定义如下:
class userIPs(models.Model):
IP_Address_1 = models.GenericIPAddressField(blank=False)
IP_Address_2 = models.GenericIPAddressField(blank=False)
class Meta:
unique_together = (('IP_Address_1', 'IP_Address_2',),)
或者
^{pr2}$使用这两种实现,我只能检查一个特定IP字段中的唯一性。在
例如:如果user1有以下值
IP_Address_1 = 10.0.0.1; IP_Address_2 = 10.0.0.2
如果我尝试添加相同的值,系统会按预期引发异常。 但是,当我尝试添加其他用户的值时
IP_Address_1 = 10.0.0.2; IP_Address_2 = 10.0.0.1
添加值时不进行任何唯一检查。在
我想通过检查IP地址1和IP地址2来确保IP是唯一的。 有没有办法检查多个字段的唯一性?在
谢谢!在
请注意:我是问这个问题的人。我觉得这个答案可能对某人有用。在
要验证两个不同字段中的值,可以使用:
以及
所以,我最后的模型如下
您可以为您的模型更新
save
方法,以检查两个IP是否都是唯一的。在像这样:
除非这两个IP地址的“顺序”很重要,否则只需在您的
save()
中对它们进行排序,其余的则信任您的数据库。在编辑:
为了满足要求
最好重构:
^{pr2}$并确保每个
user
最多有两个(或您的业务需求是什么)IpAddress
。在相关问题 更多 >
编程相关推荐