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

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

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

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

Q&A

解決済

2回答

1148閲覧

django 新規登録画面とログイン画面の違い

mandapink

総合スコア7

Django

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

0グッド

0クリップ

投稿2021/12/30 11:32

編集2021/12/30 11:33
#コードALL #""" class SignUpForm(UserCreationForm): class Meta: model = User fields = ('username', 'email', 'password1') class SignUp(CreateView): form_class = SignUpForm template_name = 'logins/signup.html' def post(self, request, *args, **kwargs): form = self.form_class(data=request.POST) if form.is_valid(): form.save() username = form.cleaned_data.get('username') raw_password = form.cleaned_data.get('password1') user = authenticate(username=username, password=raw_password) login(request, user) return short.redirect(to="/info") return short.render(request, 'logins/signup.html', {'form': form}) #"""

今の状況
試しにアカウント登録画面を作りました 上のコード(コードALL)がpython部分です
私の想定では
アクセス>アカウントを作る>"/info"にとぶページだと思ってます
"/info"はホーム画面のようなものでログインボタンをおせば別のログインページに飛ぶようにする予定です(うまく説明できない ホーム画面の上のほうにログインとアカウント作成はこちら がついててログインすればホーム画面の上のほうにアイコンが表示される感じ)

#コードB username = form.cleaned_data.get('username') raw_password = form.cleaned_data.get('password1') user = authenticate(username=username, password=raw_password) login(request, user)

しかしコードBの部分をログイン画面に使ってる記事をいくつか見かけました
コードALLはログインまでしてしまっていますか?
新規登録ならコードBは必要ないですか?

参考の例
https://di-acc2.com/programming/python/2563/#index_id1

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

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

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

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

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

guest

回答2

0

ベストアンサー

コードALLはログインまでしてしまっていますか?

はい。「login(request, user)」の行があるのでログインしていると思います。

新規登録ならコードBは必要ないですか?

それは要件次第(あなたの決めの問題)で、

  • 新規登録した後、例えば「登録しました」的な画面表示の後、自分で改めてログインしてもらいたいのか
  • 登録と同時にログインして、そのままホーム画面に遷移して使ってもらいたいのか

によるかと思います。
(個人的にはそのまま使えるサイトの方が好感度高いですが。)

投稿2021/12/30 12:43

umau

総合スコア831

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

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

0

【アプリ名のディレクトリ】/urls.pyurlpatternsに以下の記述があればDjangoのデフォルトのログイン機能をそのまま使えるため、必ずしもview.pyにログイン機能を実装する必要があるとは限りません。

path('accounts/', include('django.contrib.auth.urls')),

例えば以下のサイトがviews.pyに自分でログイン処理を書かずにログイン機能を実装している例です。
https://noumenon-th.net/programming/2019/11/25/django-abstractuser/

投稿2021/12/30 12:29

編集2021/12/30 12:56
Supernove

総合スコア1154

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

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

mandapink

2021/12/30 12:40

login(request, user)は標準ではないのですか?
Supernove

2021/12/30 12:58 編集

もちろん標準の関数ですよ。 「django.contrib.auth.urls」の中にlogin関数が含まれているから要件次第でわざわざ書かなくてもいいですよって意味で言いたかったです。 もうベストアンサー選ばれてますが、一応誤解が無いように回答修正しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問