我不关心并发问题。
构建独特的表单域相对容易:
from django import forms
class UniqueUserEmailField(forms.CharField):
def clean(self, value):
self.check_uniqueness(super(UniqueUserEmailField, self).clean(value))
def check_uniqueness(self, value):
same_user = users.User.all().filter('email', value).get()
if same_user:
raise forms.ValidationError('%s already_registered' % value)
因此可以即时添加用户。编辑现有用户很棘手。此字段不允许保存具有其他用户电子邮件的用户。同时,它不允许使用相同的电子邮件保存用户。您使用什么代码将具有唯一性检查的字段放入 ModelForm?