对于一个特定的模型,我使用Django管理界面。我实现了自定义验证(clean方法)和保存方法。
所以,我的代码大概像这样:
class DailyActivitiesAdmin(admin.ModelAdmin):
form= MyCustomFormForm
def save_model(self, request, obj, form, change):
.... my custom save ....
class MyCustomFormForm(forms.ModelForm):
....
def clean(self):
... my custom validation ...
def clean_my_field(self):
... my custom field validation ...
我的问题是:
我是否需要明确管理从验证到保存模型的事务,还是原子性已经在Django管理中处理好了?
我的客户向我报告了一个关于此的错误:
在我的干净验证中,我实现了一个检查来避免相似的模型; 有时他会创建重复的模型。我认为可能他多次单击保存按钮,可能他的互联网连接速度较慢。
这是可能的情况吗?我能否避免这种情况?例如,在保存请求期间可以禁用保存按钮吗?
如果尚未处理,我能以某种方式保证原子性吗?
PS:我使用Python 3、Django 2和Postgres