我需要确保一个对象 ( Device) 只保存一次并且只保存到一个数据库中。
我有几个 PostGre SQL 数据库,如下所示:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------------------------+-------+----------+------------+------------+-------------------
admin | admin | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | admin | UTF8 | en_US.utf8 | en_US.utf8 |
reference | admin | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | admin | UTF8 | en_US.utf8 | en_US.utf8 | =c/admin +
| | | | | admin=CTc/admin
template1 | admin | UTF8 | en_US.utf8 | en_US.utf8 | =c/admin +
| | | | | admin=CTc/admin
workspace_A | admin | UTF8 | en_US.utf8 | en_US.utf8 |
workspace_B | admin | UTF8 | en_US.utf8 | en_US.utf8 |
workspace_C | admin | UTF8 | en_US.utf8 | en_US.utf8 |
workspace_D | admin | UTF8 | en_US.utf8 | en_US.utf8 |
工作区 A、B、C 和 D 都有一个名为的表devices_device,其中包含一个 ID、一个名称和一些其他字段。
在保存 a Device(覆盖 Djangosave()函数)以确保Device不存在具有相同参数的a时,我需要调用什么函数?
这是我目前概述的内容,带有问号的地方我不知道要使用哪个功能
def save(self, *args, **kwargs):
for tab in ?.objects.all():
if tab.object.using('devices_device')? == self.device_reference
and ?.device_name == self.device_name
and ?.device_address == self.device_address
and ?.device_position== self.device_position
and ?.device_desciption == self.device_desciption:
raise ValidationError(
"This device already exists in another workspace!"
)
super().save(*args, **kwargs)
回首忆惘然
相关分类