相关疑难解决方法(0)

generic.GenericForeignKey()字段可以为Null吗?

我正在创建一个对象,该对象跟踪有关创建,更新和删除UUIDSyncable数据库中其他所谓对象的更改(更新).

这涉及扩展UUIDSyncablesave()delete()方法的任何对象,以这种方式创建一个Update记录动作的新对象(插入,更新或删除),最初是一个models.CharField(max_length=64)指定对象的UUID pk的字段UUIDSyncable.

此时我想更新实现以使用Django的generic.GenericForeignKey()字段而不是我的单个字符字段.这将使得能够以更简单的方式访问正在记录更新的对象.

当您希望删除对象并将其存储为Update对象时,我的问题就出现了,因为您知道Django会对UUIDSyncable要删除的对象执行级联删除,删除所有以前的Update记录(不需要).

UUIDSyncable在我的原始实现中删除了该对象时,每个Update对象仍将保留UUID以通知外部各方其删除.我的第一个模拟这个的解决方案是content_object = None在删除所有对象上的Update对象之前设置,从而防止删除级联.

它的接缝generic.GenericForeignKey()无法设置为允许NULL值.有没有办法做到这一点,或者如果没有办法如何以类似的方式使用CharField持有UUID主键和CharField持有模型名称的sperate 的标准?

django django-models

22
推荐指数
2
解决办法
6867
查看次数

标签 统计

django ×1

django-models ×1