我正在尝试为一队卡车实施地理围栏。我必须将一系列边界与车辆联系起来。除此之外,其中一项要求是保留所有内容,即使一旦删除以用于审计目的。因此,我们必须对所有内容实施软删除。这是问题所在。我的许多字段不符合软删除管理器,它包含查找数据集中的活动记录和非活动记录。如何过滤多对多字段的模型?
class Vehicle(SoftDeleteModel):
routes = models.ManyToManyField('RouteBoundary', through='VehicleBoundaryMap', verbose_name=_('routes'),
limit_choices_to={'active': True})
class VehicleBoundaryMap(SoftDeleteModel):
vehicle = models.ForeignKey(Vehicle, verbose_name="vehicle")
route_boundary = models.ForeignKey(RouteBoundary, verbose_name="route boundary")
# ... more stuff here
alive = SoftDeleteManager()
class SoftDeleteManager(models.Manager):
use_for_related_fields = True
def get_queryset(self):
return SoftDeleteQuerySet(self.model).filter(active=True)
正如你看到上面我试图以确保默认管理器是一个软删除管理器(即过滤有效记录只),并尝试使用极限limit_choices_to但转出到外地外国模型只不我想要的“通过”模式。如果您有任何建议或建议,我很乐意听取您的意见。
谢谢!
不要自己实施软删除,而应使用类似[django-reversion](https://github.com/etianen/django-reversion)的东西。 – Anonymous
那软删除已经到处都已经实现了,我无法再改变它了。我希望我们会使用逆转,它会为我们节省很多头痛。 –