私はdjangoとpythonの開発に不慣れで、例外の処理方法を理解していません。
メソッド register を呼び出して API 呼び出しを介してユーザーを登録しています。登録中に成功ステータスまたはエラー メッセージをプッシュしたいと考えています。
def register(self,request, **kwargs):
try:
data = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))
email = data['email']
password = data['password']
firstname = data['firstname']
lastname = data['lastname']
newdata = {'email' : email , 'password1': password , 'password2':password, 'firstname':'firstname' , 'lastname':lastname }
registrationform = UserEmailRegistrationForm(newdata)
print registrationform.errors.as_text
print registrationform.cleaned_data
cleaned_data = registrationform.cleaned_data
if Site._meta.installed:
site = Site.objects.get_current()
else:
site = RequestSite(request)
new_user = RegistrationProfile.objects.create_inactive_user(cleaned_data['username'],cleaned_data['email'],cleaned_data['password1'], site)
signals.user_registered.send(sender=self.__class__,
user=new_user,
request=request,**cleaned_data)
registerUser = collections.OrderedDict()
registerUser['return']='0'
registerUser['code']='0'
registerUser['message']='registered user'
return HttpResponse(registerUser, content_type="application/json")
except Exception, e:
logging.exception(e)
registerUser = collections.OrderedDict()
registerUser['return']='0'
registerUser['code']='0'
registerUser['message']='registered user'
return HttpResponse(registerUser, content_type="application/json")
たとえば、既に登録されている電子メールでこれを実行すると、registrationform.errors.as_text に次のように表示されます。
bound method ErrorDict.as_text of {'email': [u'A user with that email already exists.']}>
フォームが検証され、ユーザーが登録された場合は成功メッセージを渡し、検証エラーがあった場合はエラー メッセージを渡すことができるように、例外をコーディングする正しい方法は何でしょうか?
どんな助けでも大歓迎です!