2017-04-03 10 views
0

モデルフォームにカスタムパラメータを追加する際に問題が発生しました(この場合、request.userのcurrrentユーザ) 以前のプロジェクトでこれをやっていましたが、管理できませんDjango 1.10.4の新しいプロジェクトで動作させるdjangoモデルフォームにカスタムパラメータを追加する

私はこのエラーを得た:

TypeError at /realestateprogram/edition_appartement/19/ 
__init__() got an unexpected keyword argument 'user' 

は、これが私の見解です:

apartment = get_object_or_404(Apartment, pk=apartment_id) 
if request.method == 'POST': 
    form = ApartmentForm(request.POST, request.FILES, instance=apartment, user=request.user) 
    if form.is_valid(): 
     form.save() 
     return redirect('list_realestateprogram_apartment', realestateprogram_id=apartment.realestateprogram.id) 
    else: 
     print form.errors 
else: 
    form = ApartmentForm(instance=apartment, user=request.user) 

、これが私のフォームです:事前に

class ApartmentForm(forms.ModelForm): 
    class Meta: 
     model = Apartment 
     exclude = ('realestateprogram',) 

    def __init__(self, *args, **kwargs): 
     self.user = kwargs.pop('user') 
     super(ApartmentForm, self).__init__(*args, **kwargs) 

おかげであなたは私を助けることができる場合

答えて

0

すべての値を渡すようにしてくださいキーワード引数で:あなたはclass based generic viewsを見れば

form = ApartmentForm(data=request.POST, files=request.FILES, instance=apartment, user=request.user) 

、それは彼らがそれを行う方法です。また、Form handling with class-based viewsを見ることをお勧めします。

+0

あなたの答えをありがとう。キーワードargsを使ってすべての値を渡すと、どちらもうまくいきません:/ – user2323122

関連する問題