Django models 如何在django中使同一模型的两个字段唯一

Django models 如何在django中使同一模型的两个字段唯一,django-models,django-rest-framework,mysql-connector-python,Django Models,Django Rest Framework,Mysql Connector Python,我使用的是DispensingUnit类名,有两个字段'keypad1\u sr\u no\u hw'和'keypad2\u sr\u no\u hw' 我们如何比较这两个字段的唯一性,这意味着两个字段永远不会有相同的值组合 将此唯一\u一起使用,但它不起作用 class Meta: unique_together = (("keypad1_sr_no_hw", "keypad2_sr_no_hw",)) class DispensingUnit(models.Model):

我使用的是DispensingUnit类名,有两个字段
'keypad1\u sr\u no\u hw'
'keypad2\u sr\u no\u hw'

我们如何比较这两个字段的唯一性,这意味着两个字段永远不会有相同的值组合

将此
唯一\u一起使用
,但它不起作用

class Meta:
        unique_together = (("keypad1_sr_no_hw", "keypad2_sr_no_hw",))

class DispensingUnit(models.Model):
        keypad1_sr_no_hw = models.CharField(U'Keypad 1', max_length=20 ,)
   keypad2_sr_no_hw = models.CharField(U'Keypad 2', max_length=20,)
keypad1_sr_no_hw
中的值为
KP2019310001
,而
keypad2_sr_no_hw
中的值仍会保存。
我希望当两个值都相同时,它会显示错误,并且不会存储值。

您是否尝试过重写save方法,请按照这条路线执行操作

def save(self, *args, **kwargs):
    if self.keypad1_sr_no_hw == self.keypad2_sr_no_hw:
        raise ValidationError("keypad1_sr_no_hw and keypad2_sr_no_hw have same values")
    return super(DispensingUnit, self).save(*args, **kwargs)

我知道这可能不是您想要的,但它会为您完成任务,我不确定是否存在任何内置django属性,可以比较多个字段以获得唯一性。

在所有分发单元中,keypad1_sr_no_hw和keypad2_sr_no_hw的所有值都应该是唯一的吗?或者,对于一个DispensingUnit实例,它们是否可能不相同?