Google App Engine 的基本唯一 ModelForm 字段
我不关心并发问题。
构建独特的表单字段相对容易:
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 中?
I do not care about concurrency issues.
It is relatively easy to build unique form field:
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)
so one could add users on-the-fly. Editing existing user is tricky. This field would not allow to save user having other user email. At the same time it would not allow to save a user with the same email. What code do you use to put a field with uniqueness check into ModelForm?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
快速而肮脏的方法是:
在 ModelForm 中使用自定义字段检查,如下所示:
更好的选择?
quick and dirty way would be:
use custom field check in ModelForm, like this:
better options?