要为我的模型创建通用版本控制,我已经创建了模型value
:
ready
和抽象模型Version
class Version(models.Model):
version_number = models.IntegerField()
...
一切正常,但是我想让数据库检查每个版本是否分配给一个并且只有一个对象。
我能想到的是修改字段VersionedModel
并使用class VersionedModel(models.Model):
...
versions = models.ManyToManyField(Version, related_name="%(app_label)s_%(class)s")
class Meta:
abstract = True
创建中间表,然后在其中可以对version_id使用唯一索引,但是我回到了最初的问题为抽象模型创建versions
字段的过程。
我不喜欢使用through
,因为它们在使用石墨烯时会引起各种麻烦。我想知道是否存在一种以其他方式对此进行建模的方法,或者使用我不知道的一些约束,以便数据库可以自己提供完整性和唯一性。