2016-05-07 10 views
0

views.pyパスrequest.user.idは動作しません:(

def RealStateView(request): 
    form = RealStateForm(request.user) 

forms.py

class RealStateForm(forms.ModelForm): 
def __init__(self, *args, **kwargs): 
    request = kwargs.pop('request') 
    super(RealStateForm, self).__init__(*args, **kwargs) 
    self.fields['user_id'].initial = request.user.id 


class Meta: 
    model = RealState 
    exclude = ["owner"] 
    fields = '__all__' 

def clean_acquisition_value(self): 
    message = self.cleaned_data['acquisition_value'] 

    if message < 10: 
     raise ValidationError('No puede ser cero') 
    return message 

エラーは言う:

Exception Type: KeyError 
Exception Value: 'request' 

私は成功の結果なしに他の方法を試しました..どんなアイデアですか?

+0

フォームコードは何ですか。 – ahmed

+0

クラスRealStateForm(forms.ModelForm): def __init __(self、* args、** kwargs): request = kwargs.pop( 'request') super(RealStateForm、self).__ init __(* args、** kwargs ) self.fields [ 'USER_ID'] =初期 をrequest.user.idクラスメタ: モデルは= RealState は[ "所有者"] = フィールド= '__all__' DEF clean_acquisition_value(自己)を除外する。 message = self.cleaned_data ['acquisition_value'] メッセージの場合<10: raise ValidationError( 'No puede ser cero') 返信メッセージ –

答えて

2

あなたは"request"というキーワード引数をコンストラクタに渡しません。代わりに、request.userの値を持つ位置引数を渡しています。

form = RealStateForm(request=request) 
+0

大丈夫です。それを正しくするにはどうすればいいですか? –

関連する問題