0
我有以下简化的设置:Django管理:如何既节省联模型没有父
- 是基于传统的数据模型不能改变。因此,我提出了一个ValidationError,以使用户意识到没有任何更改。表单字段是只读的,我可以使用一个简单的“传递”,但我更喜欢得到这样的消息,即save()没有做它本来打算做的事情,而只是默默地做任何事情。
- 现在我正在使用应该可编辑的第二个模型扩展旧数据。它以inline的形式包含在遗留模型的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,)
非常感谢您的时间! :)
谢谢你会试试看:) – User64522 2011-04-19 00:21:20