2017-06-08 3 views
0

ログインしたユーザーのデータをプロファイルフォームに設定したいと思います。下のビューがモデルフォームに表示されないのはなぜですか?FormViewにカスタムクエリーセットを設定する

class UpdateProfile(FormView): 
    model = User 
    form_class = ProfileForm 

    def get_queryset(self): 
     return self.model.objects.get(pk=self.request.user.id) 

class ProfileForm(forms.ModelForm): 
    class Meta: 
     model = User 
     fields = ['email', 'name', 'company', 'title'] 

すべてのフィールドが空になります。

答えて

1

単一オブジェクトビューでは、get_objectを無効にしてUpdateViewを使用する必要があります。

はあなたが行うことができますログインしているユーザーを取得するには:美しいです

from django.views.generic import UpdateView 

class UpdateProfile(UpdateView): 
    model = User 
    form_class = ProfileForm 

    def get_object(self): 
     return self.request.user 
+1

を。どのように人々はCBVが気に入らないのですか? –

関連する問題