Django管理员:如何只保存内联模型而不保存父模型
我有以下简化设置:Django管理员:如何只保存内联模型而不保存父模型,django,save,inline,admin,Django,Save,Inline,Admin,我有以下简化设置: 基于无法更改的旧数据的模型。因此,我提出了一个ValidationError,让用户知道没有进行任何更改。表单字段是只读的,我可以使用一个简单的“pass”,但我更希望得到这样一条消息,即save()没有执行它打算执行的操作,而不是什么都不做 现在我用第二个模型扩展遗留数据,该模型应该是可编辑的。它以内联方式包含在旧模型的ModelAdmin中。我可以将CommentModel本身包含为ModelAdmin,但由于LegacyModel继承了父类的许多功能,因此变得复杂而不
- 基于无法更改的旧数据的模型。因此,我提出了一个ValidationError,让用户知道没有进行任何更改。表单字段是只读的,我可以使用一个简单的“pass”,但我更希望得到这样一条消息,即save()没有执行它打算执行的操作,而不是什么都不做
- 现在我用第二个模型扩展遗留数据,该模型应该是可编辑的。它以内联方式包含在旧模型的ModelAdmin中。我可以将CommentModel本身包含为ModelAdmin,但由于LegacyModel继承了父类的许多功能,因此变得复杂而不枯燥
class Legacy(models.Model):
legacyData = models.TextField()
def clean(self):
raise ValidationError("%s model is readonly." % self._meta.verbose_name.capitalize())
class Comment(models.Model):
legacy = models.OneToOneField(Legacy)
comment = models.TextField()
class LegacyAdmin(admin.ModelAdmin):
def __init__(self, *args, **kwargs):
self.readonly_fields = self.fields
super(LegacyAdmin, self).__init__(*args, **kwargs)
model = Legacy
inlines = (CommentInline, )
非常感谢您抽出时间!:) 不必在clean()中引发异常,您可以重写旧版的save(),并使用来告诉用户没有发生什么。谢谢您尝试一下:)