Sudah Masuk Setelah Mendaftar
Termasuk bagian Pengguna dan Akun dalam perjalanan Django di Coddy. Pelajaran 5 dari 16.
Pengguna baru mendaftar, lalu harus mengetik kata sandi yang baru saja dipilihnya beberapa detik sebelumnya di halaman login. View dapat memasukkannya sendiri.
login(request, user) dari django.contrib.auth memulai sesi untuk pengguna yang kamu berikan, sesi yang sama dengan yang dimulai LoginView setelah memeriksa kata sandi. login() tidak memeriksa apa pun, jadi panggil fungsi ini hanya untuk pengguna yang sudah dipercaya oleh kodemu. Situs game memasukkan pemain saat mereka membuka tautan dari email sambutan:
from django.contrib.auth import login
def welcome(request, token):
player = get_object_or_404(Player, welcome_token=token)
login(request, player.user)
return redirect("games:lobby")Di view pendaftaranmu, pengguna tepercaya adalah pengguna yang dikembalikan oleh form.save().
Tantangan
Mudah- Setelah pendaftaran berhasil, pengguna baru masuk dan diarahkan ke
/. - Pendaftaran yang ditolak formulir tidak membuat siapa pun masuk.
Tekan Jalankan, buka /signup/ dan buat akun: header menampilkan Signed in as dan namamu.
Coba sendiri
from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import get_object_or_404, redirect, render
from .forms import NoteForm
from .models import Note
def note_list(request):
notes = Note.objects.all()
return render(request, "notes/note_list.html", {"notes": notes})
def note_detail(request, pk):
note = get_object_or_404(Note, pk=pk)
return render(request, "notes/note_detail.html", {"note": note})
def note_create(request):
if request.method == "POST":
form = NoteForm(request.POST)
if form.is_valid():
note = form.save()
return redirect("notes:detail", pk=note.pk)
else:
form = NoteForm()
return render(request, "notes/note_form.html", {"form": form})
def note_edit(request, pk):
note = get_object_or_404(Note, pk=pk)
if request.method == "POST":
form = NoteForm(request.POST, instance=note)
if form.is_valid():
form.save()
return redirect("notes:detail", pk=note.pk)
else:
form = NoteForm(instance=note)
return render(request, "notes/note_form.html", {"form": form, "note": note})
def note_delete(request, pk):
note = get_object_or_404(Note, pk=pk)
if request.method == "POST":
note.delete()
return redirect("notes:list")
return render(request, "notes/note_confirm_delete.html", {"note": note})
def signup(request):
if request.method == "POST":
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect("login")
else:
form = UserCreationForm()
return render(request, "notes/signup.html", {"form": form})
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengguna dan Akun
Latihan sendiri: Playground Django