2016-08-28 8 views
1

私はサーバーとアプリケーションを持っています。私はJSONを登録ビューに送信します。Djangoのレジスタビューでの異常な動作

$.ajax({ 
     dataType: 'json', 
     type : "POST", 
     url : BASE_URL+"register/", 
     data: {username: un, password1: ps1, password2: ps2, email: e}, 
    }); 

そして、私のビュー:

JSONは次のようになり、それはだ、コードの

def register(request): 
    form = RegistrationFormUniqueEmail(request.POST) 
    if form.is_valid(): 
     new_user = RegistrationView().register(request, **form.cleaned_data) 

残りは私にエラーを取得しているため、この上の行には関係ありません。イッツ

new_user = RegistrationView().register(request, **form.cleaned_data) 
TypeError: register() got an unexpected keyword argument 'password2' 

は、Python 2.7に最近動作しますが、今は3.5

は、あなたが私を助けてもらえPYTHONに移行しますか?

UPDATE

私は、チェックボックスをオンにすると、この:私はデータは、私が調査します request.POST
に添付されない場合があります

{'password2': 'pass', 'email': '[email protected]', 'username': 'user', 'password1': 'pass'} 
+0

これが行うには奇妙なことです。なぜ別のビューのメソッドを呼び出すのですか?登録ロジックは、フォームまたはモデルでなければなりません。 –

+0

私はレジスタの後にさらにいくつかの操作があり、このメソッドを手動で呼び出す必要があります。 – mrsolupo

答えて

0

素敵な辞書を持っ

form = RegistrationForm(request.POST) 
if form.is_valid(): 
    print (form.cleaned_data) 
    ... 

RegistrationFormUniqueEmail(request.body)はjsonでエンコードする必要があります。それ以外の場合はpython3のjsonにキャストします。

輸入JSON

データ= json.jsonload(request.body)

RegistrationFormUniqueEmail(データ)

+0

私はdata = json.load(request.body)を試しています。AttributeError: 'bytes'オブジェクトに 'read'属性がありません。 – mrsolupo