Django永久模型 - 如何在管理员更改视图中保留已删除的对象?

时间:2018-06-18 09:09:27

标签: python django django-forms django-admin

我正在使用此软件包来提供软删除逻辑。 https://github.com/MnogoByte/django-permanent

class ExternalSystem(PermanentModel):
  full_name = models.CharField()

class Fact(PermanentModel):
  external_system = models.ForeignKey(blank=True, null=True, on_delete=models.DO_NOTHING)

所以,如果我“删除”ExternalSystem,在Fact admin change视图中,我在ExternalSystem字段中看到“ - ”。保留FK,但默认管理器无法访问ExternalSystem对象。

我发现修复它的唯一方法是更改​​FactEditForm:

external_system = forms.ModelChoiceField(queryset=ExternalSystem.all_objects.all())

但是,我必须以十种形式进行此类更改。而且我还必须覆盖逻辑来分隔两个表单 - 编辑和创建 - 因为“删除”对象不应该在CreateForm中。但出于历史原因,他们必须留在ChangeForm中。

还有其他办法吗?

0 个答案:

没有答案