2011-07-05 61 views
0

我知道你可以重写模型方法,但我很好奇,什么都可能是通过这个?我可以在django中重写模型方法的优点吗?

另外一个问题,如果人们想回答 - >

我想设计的安全检查,每当有人被更新和/或从模型中删除。建议在模型方法中以某种方式实现这些方法,还是在视图中保留这种逻辑更好?

回答

1

我知道你可以重写模型方法,但我很好奇,什么都可能是通过这个?

有时你需要它。如果您在保存和删除时需要执行除db操作以外的其他操作,该怎么办?

例如,您有一个带有ImageField/FileField的模型。您将要覆盖其保存和删除(添加行到数据库时,图像/文件保存到磁盘,并删除它们删除行时)

我想设计的安全检查,每当有人正在更新和/或从模型中删除。建议在模型方法中以某种方式实现这些方法,还是在视图中保留这种逻辑更好?

我不知道您的安全检查。但是,在您的模型上为行级功能定义自定义方法并在您的Manager(django.db.models.Manager)上定义表功能是很常见的。

过程中得到的模型添加/更新/删除=视图代码

添加/更新/删除模式=模型或管理器代码

EDIT的细节问题(内部):格式化

+0

喂kusut,谢谢回答,所以我的基本问题是 - >删除一行时,我想检查删除的人(request.user)是条目的所有者/创建者(行中的字段)。 –

+0

IMO,重写保存方法。在调用保存 – kusut

+0

之前检查用户,或者您可能会阻止整个视图进行错误的身份验证。我不知道。这是你的业务流程,你知道它比我更好 – kusut

相关问题