並行性の問題は気にしません。
独自のフォーム フィールドを作成するのは比較的簡単です。
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 に入れるために使用するコードは何ですか?