Django对于一个对象(非全局)是唯一的

时间:2018-03-27 20:08:24

标签: python django database model unique

在Django模型中,一个django用户应该有许多设备(一对多关系)。该设备应具有全局(!)唯一的mac地址,这意味着没有其他用户拥有具有该mac地址的设备。这就是我使用" unique = true"这很容易。但是,我如何允许一个用户自由选择devicename,但是限制所选择的devicename只允许自己一次(不是全局唯一的,仅适用于这个用户)。我的意思是,可以有两个用户" UserA"和" UserB",两者都可以命名他们的设备"皮卡丘"但是" UserA"不得打电话给他的第二个设备"皮卡丘"试。

这是我的模特。

order_items

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助:

class Device(models.Model):
        user = models.ForeignKey(User)
        mac = models.CharField(max_length=17, default='00:00:00:00:00:00', unique=True)
        devicename = models.CharField(max_length=20, default='', unique=True)

        class Meta:
            unique_together = ('user', 'devicename')