質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1065閲覧

CustomUserで登録した情報をプロフィールページとして表示させたい

hasemma

総合スコア2

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/09/12 05:16

前提・実現したいこと

現在、Djnagoにてサッカーゲーム選手閲覧作成を行なっております。
まだ、コード入力してから間もない為、そこまでコード入力が進んでおりませんが、現在、プロフィールページ作成にて躓きがあり、
以下の件でご教示頂けると幸いです。

調べ方や確認できるような情報サイトでも構いません。
宜しくお願い致します。

【前提】
acounts(app)を作成し、
CustomUserにて、自分自身のユーザー情報を登録済み。

【実現したいこと】
acountsアプリ/CustomUserにて登録した自分自身の情報をプロフィールページとして公開したい。
ログイン前ページで公開したい為、一般公開用のプロフィールページになります。

発生している問題・エラーメッセージ

accounts.models.CustomUser.DoesNotExist: CustomUser matching query does not exist.

該当のソースコード

**pes21アプリ/base.html** <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <div class="container"> <ul class="navbar-nav ml-auto"> <li class="nav-item"> <a class="nav-link" href="/">ホーム</a> </li> <li class="nav-item"> #こちらのページから飛ぶとエラーになります <a href="{% url 'profile' %}" class="nav-link">管理者プロフィール</a> </li> {% if user.is_authenticated %} <li class="nav-item"> <a href="{% url 'account_logout' %}" class="nav-link">ログアウト</a> </li> {% else %} <li class="nav-item"> <a href="{% url 'account_login' %}" class="nav-link">ログイン</a> </li> {% endif %} </ul> </div> </nav>
**acountsアプリ/views.py** class ProfileView(View): def get(self, request, *args, **kwargs): user_data = CustomUser.objects.get(id=request.user.id) return render(request, 'accounts/profile.html',{ 'user_data' : user_data, }) class ProfileEditView(LoginRequiredMixin, View): def get(self, request, *args, **kwargs): user_data = CustomUser.objects.get(id=request.user.id) form = ProfileForm( request.POST or None, initial = { 'first_name' : user_data.first_name, 'last_name' : user_data.last_name, 'description' : user_data.description, 'image' : user_data.image, } ) return render(request, 'accounts/profile_edit.html', { 'form' : form }) def post(self, request, *args, **kwargs): form = ProfileForm(request.POST or None) if form.is_valid(): user_data = CustomUser.objects.get(id=request.user.id) user_data.first_name = form.cleaned_data['first_name'] user_data.last_name = form.cleaned_data['last_name'] user_data.description = form.cleaned_data['description'] if request.FILES.get('image'): user_data.image = request.FILES.get('image') user_data.save() return redirect('profile') return render(request, 'accounts/profile.html', { 'form' : form }) class LoginView(views.LoginView): template_name = 'accounts/login.html' class LogoutView(views.LogoutView): template_name = 'accounts/logout.html' def post(self, *args, **kwargs): if self.request.user.is_authenticated: self.logout() return redirect('/')
**acountsアプリ/urls.py** urlpatterns = [ path('profile/', views.ProfileView.as_view(), name='profile'), path('profile/edit/', views.ProfileEditView.as_view(), name='profile_edit'), path('login/', views.LoginView.as_view(), name='account_login'), path('logout/', views.LogoutView.as_view(), name='account_logout'), ]
**pes21アプリ/views.py** class IndexView(TemplateView): template_name = 'pes21/index.html'

試したこと

単純ですが、
・acountsアプリ/views.pyにある、ProfileViewをpes21アプリ/views.pyにコピペし、失敗。
・本件、他にも、エラーコメントでの方法確認や「django CustomUser プロフィール 公開」や「django CustomUser プロフィール 一般公開」など、検索キーワード広げてもヒットしなかった。

補足情報(FW/ツールのバージョンなど)

使用環境 vscode
使用PC mac m1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hasemma

2021/09/13 13:52 編集

holy_さん ご回答ありがとうございます。 参考文献を見ながら、理解もせず、そのまま入力を進めていた為、 今回の質問に繋がってしまった状況です。 ご指摘頂いた部分を検索し、改めて方法に関して調べましたら解決いたしました。 request.user.idを、pk=1で変更することで、 ログインせずとも、表示させることが出来ました。 次回からは、ご質問する際、もう少し理解度を上げてからご質問できるように努めます。 ありがとうございました。
guest

回答1

0

自己解決

request.user.idを、pk=1で変更することで、
ログインせずとも、表示させることが出来ました。

このままクローズ致します。

投稿2021/09/13 13:53

hasemma

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問