2017-08-17 4 views
0

ユーザーがログインすると、オール認証アプリケーションを設定した後、彼はaccounts/profile/ページにリダイレクトされます。このページは、存在しない。Django全認証アプリ、カスタムビューを表示する/アカウント/プロフィールページを変更する方法

私はそこにどのようなものを含めるかを考えて、ユーザーが基本情報を変更できるようにすることを決めました。

私は次のように設定されてTeacherモデル、とusersアプリがあります。私はこの情報を含む、フォームを表示するaccounts/profile/ページをしたい

class Teacher(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    rate = models.CharField(max_length=200) 
    availability = models.BooleanField(default=False) 
    verified = models.BooleanField(default=False) 

を。ユーザーはこれらのフィールドを編集したり、別のモデル(User)に属しているファーストネーム、姓、メールを編集することもできます。

私はこれを始められないようです。私はプロフィールページの詳細ビューを作成したとき、私はというエラーを取得:

ないPKまたはSLUGは、私は、主キーに基づいていない、Djangoは現在のユーザー情報を変更したい

を提供しましたURLにカスタムビューが必要ですか?私は[その他のソリューション1 を見てきましたが、秘密鍵のパラメータを利用しているようです。私は必要なもの

は、(を動作していない)と似たような作業ビュー機能である:

def get_teacher_info(request): 
    current_user = request.user 
    teacher = get_object_or_404(Teacher, username=current_user.username) 
    return render(request, 'account/profile.html', { 
      'user':current_user, 
      'teacher': teacher, 
      'error_message': "The field is blank", 
     }) 

accounts/urls.pyに私が追加しました:

url(r"^profile/$", views.get_teacher_info, name="account_profile"), 

が、私が作るときhtmlテンプレートに{% teacher.rate %}のような呼び出しがあります。 5行目の無効なブロックタグ: 'teacher.rate'。このタグを登録または読み込むのを忘れましたか?

+0

settings.pyにLOGIN_REDIRECT_URL、ACCOUNT_SIGNUP_FORM_CLASS&ACCOUNT_ADAPTERを設定しましたか? – pije

+0

また、試してみてください:url(r "^ profile/$"、views.get_teacher_info、name = "get_teacher_info")、 – pije

+0

私は上記を設定していませんが、基本的には 'polls'というデフォルトのアプリケーションからコードを取り除いています。そして、それらの変数を設定することなくそこで動作します。私も成功していない2番目のコメントを試した – Roma

答えて

0

def get_teacher_info(request)関数とurls.pyエントリが機能しています。問題がテンプレート内にあるように見えます。 {%タグの代わりに{{{テンプレートの{{teacher.rate}}ではなく{{teacher.rate}}を使用してください。

関連する問題